如何使用存储过程在Entity Framework 4中返回单个实体?

use*_*969 5 entity-framework-4

实体框架的新功能。使用EF4。我找到了文章,并设法使用存储过程返回实体列表。

但是无法看到/计算出如何返回单个实体。

考虑到我有一个存储过程“ GetCustomerById”,该过程返回单个客户如何映射它?

使用模型浏览器,我右键单击“函数导入”,并添加了StoredProcedure,但是我选择的任何内容似乎都不会返回“单个实体”

我想念明显的东西吗?

非常感谢您的任何链接或建议

Mor*_*avi 3

当您执行“函数导入”时,您需要从下拉列表中选择 SP 返回的实体(即“客户”)。问题是 EF 不会根据您的选择直接返回Customer对象,而是返回实现IEnumerable 的System.Data.Objects.ObjectResult。更具体地说,这是为您的函数生成的代码:

public ObjectResult<Customer> GetCustomerById(Nullable<global::System.Int32> Id)
Run Code Online (Sandbox Code Playgroud)

这是因为 EF 不知道 SP 是否返回单个记录或它们的列表,因此它将结果包装在ObjectResult中。您可以像任何其他 IEnumerable 对象一样通过此枚举来获取 Customer 实体。例如:

Customer myCustomer = context.GetCustomerById(1).First();
Run Code Online (Sandbox Code Playgroud)