为什么linq无法获取临时表值
本文关键字:临时表 获取 linq 为什么 | 更新日期: 2023-09-27 17:49:47
处理C#vs2008。我有一个存储过程,这个过程保存临时表,我需要获取临时表的值。我的sql查询如下:
create procedure [dbo].[TestProcedure]
as
SELECT * INTO #temp1 from(select * from DischargePort) as b
select * from #temp1
drop table #temp1
我上面的查询有一个名为#temp1的临时表。在sql server管理中运行这个查询后,我得到了结果,但当我尝试在linq中执行这个过程时,我没有得到结果。我的linq语法如下:
var r = ProviderName.TestProcedure();
有人能告诉我为什么会出现这个问题,如何克服这个问题吗。希望任何人不要说linq不能处理临时表或这种词。如果有任何查询plz ask。提前谢谢。
我不认为这与临时表有任何关系,而是Linq不知道应该得到什么输出。
有了Dotnet Framework 4,这很容易,因为你可以做一些类似的事情
(from r in ProviderName.TestProcedure().AsDynamic()
select new { r.Id, r.Description}).ToList()
(假设Id和描述是卸货端口中的字段(
否则,您需要在设计器中做一些事情来告诉Linq您的过程输出是什么。我从来没有这样做过,但也许这篇文章会有所帮助。
当我想起来的时候,在这种特殊的情况下,你应该能够做一些类似的事情
var results = (from r in ExecuteQuery<DischargePort>("exec TestProcedure")
select r ).ToList();
我首先下载linqpad来查看linq正在发出的sql,这可能会提供一些线索。您还可以使用sql探查器工具来查看正在运行的查询。