2010-11-07 76 views
4

實體框架新手。使用EF4。我找到了文章並設法使用存儲過程返回實體列表。如何使用存儲過程在Entity Framework 4中返回單個實體?

但看不到/解決你如何返回一個單一的實體。

鑑於我有一個返回單個客戶的存儲過程「GetCustomerById」如何映射它?

使用模型瀏覽器我用鼠標右鍵單擊「功能導入」我已經加了我的StoredProcedure 但無論我選擇似乎並沒有返回一個「單一的實體」

我缺少明顯的?

感謝很多的任何鏈接或建議

回答

2

當你功能導入您需要選擇從下拉(即客戶)實體的SP的回報。 EF不直接返回客戶客體按照您的選擇,但System.Data.Objects.ObjectResult實施IEnumerable。 具體而言,這裏是你的函數生成的代碼:

public ObjectResult<Customer> GetCustomerById(Nullable<global::System.Int32> Id) 

這是因爲EF有,如果你的SP所以包裝內ObjectResult結果返回單個記錄或它們的列表不知道。您可以通過此枚舉來獲取您的Customer實體,就像任何其他IEnumerable對象一樣。例如:

Customer myCustomer = context.GetCustomerById(1).First(); 
+0

感謝您reply.So您是否映射到一個單一的實體或entities.It名單將創建一個IEnumerable和其高達我得到FirstOrDefault.mmmm排序,使sense.As我在周圍工作,我創建了一個我認爲是錯誤的複雜類型。 – user9969 2010-11-08 07:10:26

+0

沒問題,是的,從.NET 4.0開始,EF能夠將SP的結果實體化到實體中,就像我說的那樣,它只是把它包裝在ObjectResult中。當你做功能導入時,一定要選擇你的確切實體,而不是一個複雜的類型。 – 2010-11-08 14:09:21

相關問題