2010-02-03 78 views
0

我正在使用Visual Studio 2010的最新測試版和實體框架。這主要是很整潔,但這裏是我的情況:我可以將不完整的sproc列映射到實體嗎?

  • 我有列IdName一個表T。
  • 我有一個自動生成的實體,具有IdName屬性。
  • 最後,我有僅選擇從Id T.

試圖我的實體映射到存儲過程的結果在存儲過程中的EntityCommandExecutionException

的〔實體]一種構件,'名稱',在數據讀取器中沒有相應的列具有相同的名稱。

這是有道理的,但是有一些方法可以從存儲過程調用部分填充我的實體,然後再完全用第二查詢後兌現了嗎?

九個月前,the answer這個問題似乎涉及大量的體力勞動。就我而言,我們有數百個存儲過程,並且從字面上看,它們都沒有返回完整的行。從那以後,實體框架已經走過了很長的一段路,所以我希望可能會發生一些變化。

非常感謝您的幫助!

+0

它真的*你的實體只有'Id'和'Name',或者你「簡化了?」的情況嗎? – 2010-02-03 18:52:53

+0

簡化了!但是,我們確實有數百個這樣的案例,所以我覺得我不得不在某處推廣。出於好奇,這有什麼關係? – ladenedge 2010-02-03 19:15:09

+1

那麼,讓EF 4映射一個返回標量的proc並且'id'是標量是很簡單的,對嗎?然後你可以通過Context.Ts.Where(t => t.Id == id)實現「other」字段。單()' – 2010-02-03 19:40:06

回答

1

一種方法可能是將過程結果映射爲複雜類型,然後自定義代碼生成以向此類型添加方法,以實現整個對象。

這個想法有一個可能的問題是我不確定可以爲複雜類型自定義代碼生成。您當然可以自定義實體類型的代碼生成,as explained in great detail in this post。看起來你也應該能夠自定義複雜類型,但我從來沒有嘗試過。

相關問題