何时是在代码优先实体框架中创建数据库的时间
本文关键字:创建 数据库 时间 框架 实体 代码 何时 | 更新日期: 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 都会重新创建。
如果您对该过程非常感兴趣,请阅读本文