如何在实体框架中从SP获取动态SQL结果?

时间:2010-06-16 14:05:19

标签: entity-framework

假设我有以下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()。

如何获得此案例的结果?

2 个答案:

答案 0 :(得分:1)

您可能已经解决了这个问题,但是......

我做过同样的事情;我的过程返回一个整数,所以我选择了Scalars和Int32,它返回System.Data.Objects.ObjectResult

当然,问题是窗口状态“返回集合”(强调我的)。

杜尔。

选择None而不是Scalars,将返回相应的结果(int)。

答案 1 :(得分:0)

尝试将结果数据类型更改为System.Nullable<int>。见this post