存储过程和EF代码优先

11 stored-procedures entity-framework entity-framework-4.1

我想使用存储过程从数据库中检索实体,我不关心跟踪更改.我只需要解决所有实体,包括相关实体.

  1. 我必须使用SqlCommand吗?

  2. 那些复杂的属性,它们也会得到解决吗?

  3. 您可以告诉我任何其他限制吗?

谢谢!

Lad*_*nka 6

关于在EF中使用存储过程的一般答案在这里,因此纯EF中的存储过程将不处理导航属性.答案还提到了EFExtensions,但在DbContext API中没有.

要在DbContext API中执行存储过程,请使用:

var entities = context.Database.SqlQuery<MyEntity>(...);
Run Code Online (Sandbox Code Playgroud)

DbContext API不提供任何函数导入,如EDMX和ObjectContext API.


Tri*_*dus 5

Code First不支持存储过程.所以是的,如果您打算使用Code First,您将不得不使用SqlCommand或您选择的任何数据库.

DB First或Model First支持存储过程.