这可能是一个简单的答案,但我看不到如何使用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