首页 新闻 会员 周边 捐助

MVC EF4.0数据更新问题

0
悬赏园豆:50 [已解决问题] 解决于 2012-02-22 08:43

我定义了一个实体,是用EF自动生成的数据库,我想在实体中加个字段,比如public string Price{get;set;}

直接生成会报错

The model backing the 'MovieDBContext' context has changed since the database was created. Either manually delete/update the database, or call Database.SetInitializer with an IDatabaseInitializer instance. For example, the DropCreateDatabaseIfModelChanges strategy will automatically delete and recreate the database, and optionally seed it with new data.

然后我想自己手动更改,于是我把数据库加了Price字段,然后在VS需要添加代码的地方也添加了,还是报错,难道EF也要更新,怎么更新

命若天定-破天的主页 命若天定-破天 | 初学一级 | 园豆:1
提问于:2012-02-21 17:36
< >
分享
最佳答案
0

试试:Database.SetInitializer<EfUnitOfWork>(null);

注:EfUnitOfWork继承自DbContext

收获园豆:50
dudu | 高人七级 |园豆:30939 | 2012-02-21 17:44

刚才试过了 不知道我的对不对 反正不行,如下:

因为我多加了一个字段,所以

 Database.SetInitializer<MONDEL>(null);(不知道用法对不对 新手 -,-)

  var priac=form m in db.mondes

                where .........

               select

 因为多了一个字段 所以还是报错额

命若天定-破天 | 园豆:1 (初学一级) | 2012-02-21 19:49

@命若天定-破天: 参考这里:让Entity Framework不再私闯sys.databases

dudu | 园豆:30939 (高人七级) | 2012-02-21 21:06

@dudu: 终于解决了,确实是这个问题,我看你帖子评论好多说EF不好用,不要用之类的,难道真的不好用么?

开始用法错误 应当是Database.SetInitializer<你定义的DbContext类的名字>(null); 给你加豆子了^V^

命若天定-破天 | 园豆:1 (初学一级) | 2012-02-22 08:43

@命若天定-破天: EF很好用,看你怎么去用。

James·wang | 园豆:88 (初学一级) | 2013-03-19 10:54
其他回答(2)
0

删除数据库中dbo.EdmMetadata这张表,再运行,就行了!

ivan.zhong | 园豆:202 (菜鸟二级) | 2012-11-22 16:36
0

改掉相应的列后,删除当前数据库下system table中的那个系统历史记录的数据表就得了……我懒求得管,反正这样OK

paluano | 园豆:177 (初学一级) | 2013-03-12 16:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册