2013-07-12 43 views
2

我已經使用Entity Framework 4.1和MS SQL Server 2008創建了VS 2010,.Net 4,MVC 4應用程序。EF 4.1數據庫優先。 「EntityType <Entity>沒有定義密鑰。」

該應用程序分爲MVC Web項目,服務項目和一些實體項目。每個實體項目都包含一個edmx文件和一個上下文。 edmx文件已經從數據庫中生成,而不是先編碼。

我的應用程序編譯和運行成功,直到我進入一個網頁,其中引用了一個特定的EDMX文件,然後我得到的錯誤:

System.Data.Edm.EdmEntityType: : EntityType '<Entity>' has no key defined. Define the key for this EntityType. 

System.Data.Edm.EdmEntitySet: EntityType: EntitySet <Entity>s is based on type <Entity> that has no keys defined. 

的EDMX包含22個表,我得到這個消息爲其中8個。

表中的所有表都包含數據庫中的主鍵,並且由於edmx通過正確的字段顯示鍵符號,並且如果查看字段的屬性Entity Key = True,這些表似乎已引入到edmx中。所有其他實體項目都能正常工作,其中一些實體項目包含一些導致此處出現問題的相同表格。

我刪除了一些違規表並重新添加它們,但這並沒有幫助。我討厭刪除整個edmx並重新開始,因爲它花了很長時間纔得到正確的,這可能無法解決問題。

有人可以幫我解決這個問題嗎?謝謝。

+0

我忘了提及的是,EDMX也是在Visual Studio – user2123473

+0

注意成功地驗證瞭如果您在.NET 4.5中使用組合鍵,則需要使用EF的預發佈版本,原因是一些屬性被移至不同的名稱空間。我得到了這個確切的消息,因爲EF沒有識別我的組合鍵。 – Madushan

回答

0

讓我們假設一個屬性標識映射到你的主鍵,那麼你有[key]屬性這樣來裝飾它的屬性:

[Key] 
public int Id { get; set; } 
相關問題