我是EF新手,我从EF5开始。单独项目中的EF5模型无法看到DbContext方法
遵循Performance Considerations for Entity Framework 5的建议2.4.2将模型移动到单独的程序集中...我创建了一个单独的项目(我将其称为EfPrj)来管理我的Db上下文(称为MyDbContext)。
在我的域层(我将它称为DomainPrj)我使用EfPrj中的实体。问题是,在DomainPrj内我看不到从DbContext继承的MyDbContext的成员。
例如,如果我想更新表用户的代码是:
void UpdateUser(User u)
{
MyDbContext db = new MyDbContext();
//whatever is needed
db.SaveChanges();
}
但在EfPrj它的工作原理没有问题。在DomainPrj我不能看到的成员函数调用SaveChanges(),得到这个错误:
'MyDbContext' does not contain a definition for 'SaveChanges' and no extension method 'SaveChanges' ... could be found (are you missing a using directive or an assembly reference?)
更新:只有 EfPrj ES与ORM数据库,第一个模型的项目。 MyDbContext被默认定义如下EF5对象: 公共部分类MyDbContext:的DbContext { 公共MyDbContext() :基部( “名称= MyDbEntities”) { }
所以从的DbContext派生并是公开的。 DomainPrj参考EfPrj和MyDbContext db = new MyDbContext()
工作没有问题。
不'MyDbContext'从'DbContext'获得? –
让您在您的DomainPrj中引用了您的EfPrj,并且您的DbContext是一个公共成员 – Derek
另一个显而易见的问题是:您是否遇到有关引用“EntityFramework”程序集的编译器错误? –