我正在使用实体框架。
我有以下几点:

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无法保证您的存储过程将始终返回单行,因此将其放入is just an enumerable collection中的ObjectResult中。如果始终希望得到一个结果,则可以使用db.GetParamAlerts().Single()GetParamAlerts_Result的形式获取结果,或使用任何标准的可枚举方法,例如First()FirstOrDefault()SingleOrDefault()等。

10-04 17:48