zoukankan      html  css  js  c++  java
  • EntityFramework

    CodeFirst

    可以建立新数据库,或者向空数据库添加表。

    1.建立新数据库

    1)引用EntityFramework

    可以通过nuget获取到最新的,安装完毕后项目将自动引用

    2)生成数据库,数据库表

    //Dbcontext 要 引用命名空间 using System.Data.Entity;

    public class BlogContext : DbContext

    {

    public DbSet<Blog> Blogs { get; set; }
           public DbSet<Post> Posts { get; set; }
           public DbSet<User> Users { get; set; }

           protected override void OnModelCreating(DbModelBuilder modelBuilder)
           {
               modelBuilder.Entity<User>()
                   .Property(u => u.Displayname)
                   .HasColumnName("display_name");
           }

    }

    数据库名字为BlogContext(实体上下文),3个表 Blogs,Posts,Users

    下面是3张表的类代码

    1)virtual延迟加载

    2)注意[key] 引用using System.ComponentModel.DataAnnotations,表明实体的键

    public class Blog
        {
            public int BlogId { get; set; }
            public string Name { get; set; }
            /// <summary>
            /// 添加新列,更改模型
            /// </summary>
            public string Url { get; set; }
            public virtual List<Post> Posts { get; set; }
        }

        public class Post
        {
            public int PostId { get; set; }
            public string Title { get; set; }
            public string Context { get; set; }

            public int BlogId { get; set; }
            public virtual Blog blg { get; set; }
        }

        public class User
        {
            [Key]   
            public string Username { get; set; }
            public string Displayname { get; set; }

        }

    3)生成数据库和表后,如果模型有更改后,通过 Code First 迁移 更新到数据库

    比如表中新建列,新建了表。

    “Code First 迁移”(或简称“迁移”)的功能,处理模型更改  ---->启用 Code First 迁移

    Enable-Migrations

    Add-Migration 命令检查自上次迁移后是否有更改,并使用所有更改搭建新迁移。我们可以为迁移指定名称;在本例中,将此迁移称为“AddUrl”。

    • 使用 Add-Migration AddUser 命令搭建一个迁移,将这些更改应用于数据库
    • 运行 Update-Database 命令,将新迁移应用于数据库

    vs菜单->工具->nuget包管理->程序包管理器

    Database first

    使用实体框架进行 Database First 开发。通过 Database First,可以从现有数据库对模型进行反向工程处理。模型存储在一个 EDMX 文件(扩展名为 .edmx)中,可在实体框架设计器中查看和编辑。应用程序中用于交互的类是自动从 EDMX 文件生成的.

    在edm框架设计器中,可以通过右击空白,选择 ”从数据库更新模型“或者“通过模型生成数据库”

    假设数据库中增加了1张表,则通过”从数据库更新模型“可以更新到模型中。

    ModelFirst

    本演练介绍了 Model First 开发,通过这种开发,可在 EF 设计器中创建模型,然后根据模型生成数据库。随后,我们使用模型从数据库读写一些数据。最后,我们更新了模型,重新创建了数据库架构来匹配模型。

    也是通过edm和程序交互,一旦根据模型从数据库更新则数据库的所有表将被删除,然后重新建,对于已经部署好的服务器要使用,本地机器可以使用。

    workfolw的选择

    image

    codefrist 用于那些数据库变动大的

  • 相关阅读:
    筱玛的迷阵探险(折半搜索+01字典树)
    递推
    thin mission 2021 10 8
    4级 -- 阅读
    c++——小知识
    stl
    string
    ting mission 2021.9.20
    ting mission 2021.9.27
    欧拉函数
  • 原文地址:https://www.cnblogs.com/StudyLife/p/3588645.html
Copyright © 2011-2022 走看看