![](/img/trans.png)
[英]Constructing dynamic queries with c# + Entity Framework + Stored procedure
[英]c# , Entity Framework Stored Procedure
我正在使用实体框架。 我有以下内容:
var db = new LikEntities();
GetParamAlerts_Result paramRslt = db.GetParamAlerts();
GetParamAlerts
是一个存储过程,它是类型
System.Data.Objects.ObjectResult<GetParamAlerts_Result>
请注意,GetParamAlerts返回多行。
当我运行上面的代码时,出现以下错误消息:
无法隐式转换类型:
'System.Data.Objects.ObjectResult'到'PVT_Alert_Notification.GetParamAlerts_Result'
不确定如何解决此问题。
这是因为Entity Framework无法保证您的存储过程将始终返回单行,因此将其存储在ObjectResult
,该对象只是一个可枚举的collection 。 如果始终希望得到一个结果,则可以使用db.GetParamAlerts().Single()
作为GetParamAlerts_Result
获得结果,或者使用任何标准的可枚举方法,例如First()
, FirstOrDefault()
, SingleOrDefault()
,等等
它看起来像您应该使用
PVT_Alert_Notification.GetParamAlerts_Result paramRslt = db.GetParamAlerts();
还是方法返回错误的类型? 您可以为该方法添加代码吗? 还是您正在收藏 ?
如果您有收藏,则可以使用:
var result = db.GetParamAlerts();
return result.FirstOrDefault();
您会在这里看到类似的帖子
尝试在末尾加入第一个或默认值
GetParamAlerts_Result paramRslt = db.GetParamAlerts().FirstOrDefault();
尝试使用演员表
GetParamAlerts_Result paramRslt = db.GetParamAlerts().Cast<GetParamAlerts_Result>().ToList();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.