3

請原諒我,如果這個問題已被問及已經回答。如果是這樣,請指出我的意見。我使用的是帶有最新Service Pack的.Net 3.5(平臺更新不在我的控制之下)。實體框架 - 存儲過程結果作爲一個沒有主鍵的實體

我有一個存儲過程,將返回如下行。沒有其他專欄可以作爲此實體的關鍵字;結果如下所示:

COUNTRYCODE  QUANTITY 
USA    100 
UK    250 
USA    300 
USA    190 

等等。

我跟着從http://blogs.microsoft.co.il/blogs/gilf/archive/2009/03/13/mapping-stored-procedure-results-to-a-custom-entity-in-entity-framework.aspx

步驟以及http://msdn.microsoft.com/en-us/library/cc982038(v=VS.90).aspx

這使導致錯誤「實體類型soAndso沒有定義的鍵。定義鍵此實體類型」

我們如何減輕這個錯誤?我只是在這裏不需要主鍵,並且不能修改存儲過程。我正在要求SOF作爲最後的手段。請幫忙。非常感謝你。

回答

4

如果您不需要主鍵,那麼我假設您沒有要求能夠修改此數據並將其提交回服務器。在這種情況下,您應該使用複雜類型而不是實體類型。複雜類型是類,可以像實體一樣用作DTO,但不能將複雜類型用作基本插入/更新/刪除對象。

編輯:似乎複雜類型可能無法在EFv1(.NET 3.5)中使用,除非作爲實體類型上標量屬性的分組手段。不幸的是,EFv1遠不如EFv4,並且可能無法解決涉及使用實體框架的問題。

+1

呀,這應該工作..下面是詳細信息: http://msdn.microsoft.com/en-us/library/bb738472.aspx http://msdn.microsoft.com/en-us /library/cc716733.aspx – pirho

+0

謝謝亞當。你的猜測是正確的,SP只執行一個SELECT。沒有涉及UPDATE/INSERT/DELETE。也就是說,如果我選擇.Net 3.5作爲我的目標平臺,那麼複雜類型不適用於VS2010。並且將要部署此代碼的計算機沒有安裝4.0。 :-(我該怎麼做? – FMFF

+1

如何: http://blogs.microsoft.co.il/blogs/gilf/archive/2009/03/13/mapping-stored-procedure-results-to-a-custom -entity-in-entity-framework.aspx – pirho