这在 VS2010 RC LINQ-to-SQL 上失败,并出现 InvalidOperationException“存储过程不能在查询内使用。”:
var foo = (from a in aTable
from b in this.SomeStoredProcedure()
where a.Id == b.Id
select b.Id);
SomeStoredProcedure 是一个返回表的 SQL 过程。 “加入”似乎也失败了。有什么想法吗?
因为您无法在 select 语句中调用存储过程。
您的命令在 tsql 中看起来像这样...但这无效。
select b.Id
from aTable a
inner join (exec SomeStoredProcedure) b on a.Id = b.Id
如果您使用 udf 而不是存储过程,则 LINQ 语句将起作用。或者,您可以在进行联接之前执行存储过程。
var foo = (from a in aTable
from b in this.SomeStoredProcedure().ToList()
where a.Id == b.Id
select b.Id);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)