假设我有以下SP来运行动态sql 更改程序[dbo]。[MySP] 如 BEGIN
declare @sql varchar(4000)
select @sql = 'select cnt = count(*) from Mytable ..... ';
exec (@sql)
END
然后在edmx中,我为这个sp添加了sp和import函数。返回类型是标量int32。
然后我想在代码中使用这个函数:
int? result = context.MySP();
我收到错误说“无法将System.Data.Objects.ObjectResults类型隐式转换为int?”
如果使用
var result = context.MySP();
然后Single()不能应用于context.MySP()。
如何获得此案例的结果?
答案 0 :(得分:1)
您可能已经解决了这个问题,但是......
我做过同样的事情;我的过程返回一个整数,所以我选择了Scalars和Int32,它返回System.Data.Objects.ObjectResult
当然,问题是窗口状态“返回集合”(强调我的)。
杜尔。
选择None而不是Scalars,将返回相应的结果(int)。
答案 1 :(得分:0)
尝试将结果数据类型更改为System.Nullable<int>
。见this post。