我定义了一个实体,是用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也要更新,怎么更新
试试:Database.SetInitializer<EfUnitOfWork>(null);
注:EfUnitOfWork继承自DbContext
刚才试过了 不知道我的对不对 反正不行,如下:
因为我多加了一个字段,所以
Database.SetInitializer<MONDEL>(null);(不知道用法对不对 新手 -,-)
var priac=form m in db.mondes
where .........
select
因为多了一个字段 所以还是报错额
@命若天定-破天: 参考这里:让Entity Framework不再私闯sys.databases
@dudu: 终于解决了,确实是这个问题,我看你帖子评论好多说EF不好用,不要用之类的,难道真的不好用么?
开始用法错误 应当是Database.SetInitializer<你定义的DbContext类的名字>(null); 给你加豆子了^V^
@命若天定-破天: EF很好用,看你怎么去用。
删除数据库中dbo.EdmMetadata这张表,再运行,就行了!
改掉相应的列后,删除当前数据库下system table中的那个系统历史记录的数据表就得了……我懒求得管,反正这样OK