我是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」程序集的編譯器錯誤? –