2011-08-23 24 views
0

關係我在EDMX文件錯誤在一個一對多的實體框架

User{ 
    properties 
    UserId 
    Name 
} 

Store{ 
    properties 
    StoreId 
    Name 
    Owner 
    navigation proeprties 
    User 
} 

我使用的是POCO方法如下表

Users 
---------- 
UserId (int) 
Name (varchar) 

Stores 
---------- 
StoreId (int) 
Name (varchar) 
Owner (int) (FK to UserId in Users table) 

和下面的實體。將edmx文件映射到我的POCO實體。獲取用戶工作正常,但是當我嘗試創建一個新的用戶會保存在成功的數據庫,但拋出以下異常

「到數據庫的更改被成功提交,但在更新時發生錯誤 ObjectContext可能是 處於不一致的狀態內部異常消息:元數據 關係'FK_Stores_Users_Owner'的信息不能爲 檢索到,如果使用映射屬性,請確保關係的 EdmRelationshipAttribute已定義在 程序集中。使用基於約定的映射時,元數據信息 不能確定分離實體之間的關係。 參數名:relationshipName」

回答

1

我看到你正在使用EF 4.1 EDMX在一起,那麼你必須通過自己或者用聲明的關鍵約束屬性或流利的API,由於EF 4.1不符合傳統的約束兼容。在XML定義的配置。

此外,請確保您使用「ADO.NET的DbContext發生器」,而不是「ADO.NET實體POCO發生器」。

+0

我認爲EF有很長的路要走。使用很高興NHibernate。:( –

+0

我認爲只要你知道如何找到EF不能做的選擇,EF就會做得更好。 – zsong