何时是在代码优先实体框架中创建数据库的时间

本文关键字:创建 数据库 时间 框架 实体 代码 何时 | 更新日期: 2023-09-27 17:56:01

我只是实体框架的新手,我目前正在 Codefirst 上练习生成我的模型。我遇到的一个困惑是,当我调用 DbContext 来创建整个架构时,我需要先将数据插入到任何表中,然后才能创建所有表。这有意义吗?或者也许我只是对我的代码做错了什么。谢谢?

下面是一个示例代码:

public class Employee
{
    public int EmployeeID { get; set; }
    public string Firstname { get; set; }
    public string Middlename { get; set; }
    public string Lastname { get; set; }
}

这是我的DBContext:

public class MyContext : DBContext
{
    public MyContext():base(@"
    Data Source=(localdb)'v11.0;
    AttachDbFilename=c:'users'nsutgio'MyDB.mdb;
    Initial Catalog=MyDB;
    Integrated Security=true;
    Connection Timeout=30")
    {
    }
    // I override onModelCreating here...
    public DbSet<Employee> Employee { get; set; }
}

加载数据库...

private void loadDB()
{
    using(MyDBContext ctx = new MyDBContext())
    {
        // The commented code here is the one I've said, If I'll comment out this code below 
        // the database will not be created. My question is do we really need to insert data 
        //first before the whole database will be created?
        //Employee _ee = new Employee();
        //_ee.Firstname = "nsutgio";
        //ctx.Employee.Add(_ee);
        ctx.SaveChanges();
    }
}

何时是在代码优先实体框架中创建数据库的时间

你可以管理这个过程。但默认情况下,每次在应用程序启动期间数据模型更改时,db 都会重新创建。

如果您对该过程非常感兴趣,请阅读本文