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

时间:2010-11-07 16:27:09

标签: entity-framework-4

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

但无法查看/确定您如何返回单个实体。

鉴于我有一个存储过程“GetCustomerById”,它返回一个客户如何映射它?

使用模型浏览器我右键单击“功能导入”,然后添加了我的StoredProcedure 但无论我选择什么似乎都不会返回“单一实体”

我错过了明显的吗?

非常感谢任何链接或建议

1 个答案:

答案 0 :(得分:3)

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

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

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

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