這可能是一個簡單的答案,但我看不到如何使用EF CTP5執行存儲過程。實體框架CTP5 - 如何調用存儲過程?
在實體框架4.0,我們這樣做:
ExecuteFunction("ContainerName.StoredProcName", new ObjectParameter("Id", id))
。
這是ObjectContext
上的一種方法。
但是DbContext
沒有這樣的方法。
我們如何調用存儲過程? EF CTP5不支持嗎?
編輯:
我發現this thread,其中規定,你需要這樣做:
var people = context.People.SqlQuery("EXECUTE [dbo].[GetAllPeople]");
這引起了一些擔心:
1)您現在調用存儲prodedure上集合,而不是上下文。存儲過程應該在全局範圍內可用,而不是綁定到特定的實體集。就像它們在SQL Server中的「數據庫」下一樣,而不是在「表」下。
2)複雜類型?我以前有過從存儲過程返回的複雜類型。但是現在,看起來好像您必須直接映射到實體?這沒有任何意義。我有很多存儲過程,返回一個不直接由ObjectSet/DBSet表示的類型,我無法看到我可以如何拖延。
希望有人能爲我清楚這一點,因爲從我瞭解到目前爲止,我將無法升級到CTP5。
這恰恰是我把我的編輯我的問題。 – RPM1984 2011-01-25 22:54:13