首页 新闻 会员 周边

EF CodeFirst是何时更新数据库结构的

0
悬赏园豆:15 [待解决问题]

//假如现阶段数据库中有表Donator,此表与下面的实体相对应

public class Donator
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Amount { get; set; }
public DateTime DonateDate { get; set; }
}

//数据上下文实体

public class DonatorsContext : DbContext
{
public DonatorsContext()
: base("name=EFCodeFirst")
{
}

public virtual DbSet<Donator> Donators { get; set; }

}

//Main方法如下

class Program
{
static void Main(string[] args)
{
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<DonatorsContext>());

Console.WriteLine("Operation completed!");
Console.Read();
}
}

 

现在我修改Donator实体,添加一个新的字段

public class Donator
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Amount { get; set; }
public DateTime DonateDate { get; set; }

public string NewField{get;set;}
}

然后直接运行程序,发现数据库结构并没有变化,只有当我new一个DonatorsContext对象,并去查询Donators时,才看到数据库结构有变化。所以想请教为什么一个要查询后才会数据库表有变动,我不是已经设定DropCreateDatabaseIfModelChanges了么,请高手指教。

 

 

 

JustYong的主页 JustYong | 初学一级 | 园豆:7
提问于:2016-10-28 11:15
< >
分享
所有回答(3)
0

合并 操作起来还是挺复杂的.百度搜一下吧.最好是能谷歌搜.

EF Migrations

吴瑞祥 | 园豆:29449 (高人七级) | 2016-10-28 11:16

这个我知道,但是我现在想用DropCreateDatabaseIfModelChanges来更新数据库,应该也是可行的,只是不知道哪里出现了误差

支持(0) 反对(0) JustYong | 园豆:7 (初学一级) | 2016-10-28 11:24
0

只有第一次执行sql的时候,content才会初始化,加载配置等。

或者程序启动 来,给Entity Framework热热身

czd890 | 园豆:14412 (专家六级) | 2016-10-28 12:04

谢谢,应该有帮助 

支持(0) 反对(0) JustYong | 园豆:7 (初学一级) | 2016-10-28 14:11
0

http://www.cnblogs.com/libingql/p/3330880.html

你可以这个网站去看看!希望能帮到你

々学长 | 园豆:223 (菜鸟二级) | 2016-10-28 14:05

谢谢

支持(0) 反对(0) JustYong | 园豆:7 (初学一级) | 2016-10-28 14:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册