首页 新闻 会员 周边

EF ModelFirst自动更新的问题

0
悬赏园豆:20 [已关闭问题] 关闭于 2015-07-09 16:23

我这个项目用ModelFirst,现在 之后放到服务器给客户测试,由于需求变动我增加了几个字段,在我本地是会自动更新上去的,然后我放到服务器之后(好像是每次到第二天,由于我开了自动更新,后增加的这两个字段就会消失),但是在我本地就没事,我每次上传也会吧生成的dll上传上去,按理说应该不会出现这个问题啊,为什么呢

慕容枫的主页 慕容枫 | 初学一级 | 园豆:110
提问于:2015-07-09 09:26
< >
分享
所有回答(3)
0

你的自动更新是啥,是指windows的自动更新还是啥更新?我用过EF, 我不知道它有啥自动更新功能.

空明流光 | 园豆:106 (初学一级) | 2015-07-09 14:21

按你说的,字段的实体是在dll里的,你说的字段消失,是指数据库里的字段,还是实体类里的字段报错说找不到了。如果是数据库,肯定有什么代码把字段删了,如果实体类字段消失,肯定是dll文件被修改了。Model First应该不会改数据库结构才对的。

支持(0) 反对(0) 空明流光 | 园豆:106 (初学一级) | 2015-07-09 14:23

更改实体类自动更新数据库,不需要手动迁移

AutomaticMigrationDataLossAllowed = true;
AutomaticMigrationsEnabled = true;

支持(0) 反对(0) 慕容枫 | 园豆:110 (初学一级) | 2015-07-09 14:24

@慕容枫: 哦,了解,还是我知道的太少。

支持(0) 反对(0) 空明流光 | 园豆:106 (初学一级) | 2015-07-09 14:25

@慕容枫: 但是我还是觉得这种编程模式风险很大,建议还是基于数据库比较保险,EF坑也不少。

支持(0) 反对(0) 空明流光 | 园豆:106 (初学一级) | 2015-07-09 14:27
0

你就不能add-migration么 关掉自动更新 那个不靠谱的

小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2015-07-09 16:21
0

算了

慕容枫 | 园豆:110 (初学一级) | 2015-07-09 16:22
if ((int)databaseInitializer != 0)
{
switch (databaseInitializer)
{
case DatabaseInitializer.CreateDatabaseIfNotExists:
Database.SetInitializer(new CreateDatabaseIfNotExists<TContext>());
break;
case DatabaseInitializer.DropCreateDatabaseAlways:
Database.SetInitializer(new DropCreateDatabaseAlways<TContext>());
break;
case DatabaseInitializer.DropCreateDatabaseIfModelChanges:
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<TContext>());
break;
case DatabaseInitializer.MigrateDatabaseToLatestVersion:
Database.SetInitializer(new MigrateDatabaseToLatestVersion<TContext, TMigrationsConfiguration>());
break;
}
}
else
{
Database.SetInitializer<TContext>(null);
}

我十分怀疑你写了初始化没

支持(0) 反对(0) 小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2015-07-09 18:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册