• EFcore的 基础理解<一>


    1.新建.netCore Web项目。这时候,还与EF没啥关系。

    2.然后添加类 Bolg.和 Post   参考这里  https://docs.microsoft.com/en-us/ef/core/modeling/relational/fk-constraints

    public class Blog
    {
        public int BlogId { get; set; }
        public string Url { get; set; }
    
        public List<Post> Posts { get; set; }
    }
    
    public class Post
    {
        public int PostId { get; set; }
        public string Title { get; set; }
        public string Content { get; set; }
    
        public int BlogId { get; set; }
        public Blog Blog { get; set; }
    }

    3.新增控制器Blogs。使用 “”其操作使用EF 的控制器“。

    这时候会从Nuget 上安装EF 相关的类库。

    还会生成 这个上下文类

    public class MyEFTestContext : DbContext
        {
            public MyEFTestContext (DbContextOptions<MyEFTestContext> options)
                : base(options)
            {
            }
    
            public DbSet<MyEFTest.Models.Blog> Blog { get; set; }
        }

    4.执行 add-migration. 会生成migration 文件夹。下面会有迁移文件和 snap.cs 文件。

    可以看到。在迁移文件中。

     modelBuilder.Entity("MyEFTest.Models.Post", b =>
                    {
                        b.HasOne("MyEFTest.Models.Blog", "Blog")
                            .WithMany("Posts")
                            .HasForeignKey("BlogId")
                            .OnDelete(DeleteBehavior.Cascade);
                    });

    这里指定了外键关系。

    再添加

    public class RssBlog : Blog
    {
        public string RssUrl { get; set; }
    }

    这会扩展Blog 表。扩展的语句也是自动生成的。

      protected override void Up(MigrationBuilder migrationBuilder)
            {
                migrationBuilder.AddColumn<string>(
                    name: "Discriminator",
                    table: "Blog",
                    nullable: false,
                    defaultValue: "");
    
                migrationBuilder.AddColumn<string>(
                    name: "RssUrl",
                    table: "Blog",
                    nullable: true);
            }

    执行 update-database. 数据库文件会在 C:UsersQiGongbo  这个下面生成。

    打卡VS下的服务器资源管理器,就能看到这个数据库中表的定义。

    气功波(18037675651)
  • 相关阅读:
    Linux服务器远程ssh为centos7安装MySQL
    MyBatis配置文件模版
    强烈推荐Spring MVC初学好文章
    Servlet生成验证码
    Mac OS 配置环境变量
    Spring MVC pom.xml
    Manve阿里云仓库
    CentOS7.X怎样更新yum源
    django 登录
    django 接收 post请求
  • 原文地址:https://www.cnblogs.com/qgbo/p/11497173.html
Copyright © 2020-2023  润新知