Linq to sql LINQ to SQL无法检测存储过程返回类型
我有一个LINQ无法处理的简单存储过程。我尝试过使用和不使用临时表的变体,但总是得到相同的结果:“无法检测到以下存储过程的返回类型。” 以下是我尝试过的两种变体:Linq to sql LINQ to SQL无法检测存储过程返回类型,linq-to-sql,stored-procedures,Linq To Sql,Stored Procedures,我有一个LINQ无法处理的简单存储过程。我尝试过使用和不使用临时表的变体,但总是得到相同的结果:“无法检测到以下存储过程的返回类型。” 以下是我尝试过的两种变体: CREATE PROCEDURE GetBOQuestions @JobId int AS BEGIN SELECT Id, ExemptionCode, Prose [Question], InputType, DisplayOrder FROM Assessor.FLSA.Black
CREATE PROCEDURE GetBOQuestions @JobId int AS
BEGIN
SELECT Id, ExemptionCode, Prose [Question], InputType, DisplayOrder
FROM Assessor.FLSA.BlackOpsQuestion Q
LEFT JOIN Common.dbo.FName F ON F.ajblVIDP = Q.ExemptionCode
WHERE ajblERI = @JobId OR Q.ExemptionCode IS NULL
RETURN 0;
END
而且
CREATE PROCEDURE GetBOQuestions @JobId int AS
BEGIN
DECLARE @TempTable TABLE
(
Id VARCHAR(50),
ExemptionCode VARCHAR(10),
Question VARCHAR(1000),
InputType VARCHAR(20),
DisplayOrder INT
)
INSERT INTO @TempTable (Id, ExemptionCode, Question, InputType, DisplayOrder)
SELECT Id, ExemptionCode, Prose [Question], InputType, DisplayOrder
FROM Assessor.FLSA.BlackOpsQuestion Q
LEFT JOIN Common.dbo.FName F ON F.ajblVIDP = Q.ExemptionCode
WHERE ajblERI = @JobId OR Q.ExemptionCode IS NULL
SELECT Id, ExemptionCode, Question, InputType, DisplayOrder FROM @TempTable ORDER BY DisplayOrder
RETURN 0;
END
我曾在LINQtoSQL(.NET4.0)和实体框架中尝试过这一点。EF甚至看不到SP。该行
返回0
是这两起案件的罪魁祸首。丢失它,Linq应该能够检测结果集的类型。Linq to Sql不会直接从存储过程中获取结果。相反,将返回一个
isingresult
。您必须枚举整个结果集才能获得从存储过程返回的值。由于我忘记的原因,Linq to SQL将无法从返回结果集的存储过程自动派生结果类型,除非在将其放到Linq to SQL设计器之前在存储过程中包含以下T-SQL行:
SET FMTONLY OFF;
试试这个:
我在没有它的时候加上它也不起作用。不管有没有,LINQ都无法识别这个简单的查询。