【发布时间】:2016-10-28 22:00:07
【问题描述】:
当使用 EF6 Database First 并尝试执行存储过程时,自动生成的上下文会添加所需的方法,但将返回类型设置为 ObjectResult。例如下面的定义:
public virtual ObjectResult<USP_GetItemDetails_Result> USP_GetItemDetails(int? itemNbr, int? siteNbr)
返回类型为:
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<USP_GetItemDetails_Result>("USP_GetItemDetails", itemNbr, siteNbr);
有没有办法将这个结果具体化为具体的类,而不必将结果作为 ObjectResult 发送?我堆栈中的下一层不知道实体框架。
【问题讨论】:
-
另外,如果存储过程的返回类型是与任何数据库实体都不匹配的复杂类型(它是来自链接服务器的一些本地信息和数据的合并),则存储过程的返回类型也是如此。
-
为什么不自己将结果映射到一个新类中?
-
我可以这样做,但是稍后当我通过 Web API 将结果作为 dto 返回时,我会再次映射。
-
你可以使用 Automapper automapper.org
标签: c# entity-framework