gpt4 book ai didi

c# - linq-to-sql:存储过程不能在查询中使用

转载 作者:行者123 更新时间:2023-11-30 22:47:03 25 4
gpt4 key购买 nike

这在 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);

关于c# - linq-to-sql:存储过程不能在查询中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2360360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com