实体框架新手。使用EF4。我找到了文章并设法使用存储过程来返回实体列表。
但无法查看/确定您如何返回单个实体。
鉴于我有一个存储过程“GetCustomerById”,它返回一个客户如何映射它?
使用模型浏览器我右键单击“功能导入”,然后添加了我的StoredProcedure 但无论我选择什么似乎都不会返回“单一实体”
我错过了明显的吗?
非常感谢任何链接或建议
答案 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();