我有一個很大的MVVM類型的解決方案,我最初使用VS2010 Express編寫了.NET4。該模型使用實體來訪問SQL Server 2012數據庫。C#MVVM升級到EF5 - 實體成員函數何去何從?
我最近失去了Model項目,這似乎並不算什麼大不了,因爲它實際上包含了自動生成的實體並進行了一些小修改。因此,我已經使用.NET4.5和EF5使用VS2012重新創建了模型項目。我已將ViewModel升級到.NET4.5,並使用包管理器導入了EntityFramework。
問題是,我的ViewModel(一個單獨的類庫)拋出了幾個編譯時錯誤,我找不出來。這些圍繞着:
- 主實體類(在我的情況下,CN2Entities)不再有一個接受連接字符串的構造函數。這是通過自動完成確認的,它只提供無參數的構造函數。
映射到數據庫表(如「地址」)的各個數據庫對象類不再包含其靜態成員。例如:
address_ = Address.CreateAddress(-1);
此代碼用於爲我提供一個很好的空地址記錄來填充和添加到數據庫。這不再有效。實際上,Address類中唯一的靜態成員似乎是「Equals」和「ReferenceEquals」。
- 主Entities類不再包含AddToAddress(Address)函數,該函數然後將新地址對象(表示Address表的一行)並將其添加到數據庫中。然後我會調用Entities.SaveChanges()來提交添加。這個功能似乎仍然存在。
任何人都可以請幫助我怎麼回事?這是否與EF5的新工作方式有關?或者我有一個損壞的解決方案不能提供給我正確的參考?
我應該添加上面的「-1」參數與主鍵字段。這是一個虛擬值,在保存記錄時由EF取代。 –