Linq to sql 使用LinqtoSql,如何在存储过程中从临时表返回值?

Linq to sql 使用LinqtoSql,如何在存储过程中从临时表返回值?,linq-to-sql,stored-procedures,Linq To Sql,Stored Procedures,我有一个从临时表返回值的存储过程。在我的DBML中,它为返回类型显示(无)。让它从我的临时表中识别列的诀窍是什么 CREATE PROCEDURE [dbo].[GetCategoryPriceRanges] @CategoryId int AS BEGIN DECLARE @MinPrice money, @MaxPrice money SELECT @MinPrice = MIN(ourPrice),@MaxPrice = MAX(ourPrice) DECLARE @lo

我有一个从临时表返回值的存储过程。在我的DBML中,它为返回类型显示(无)。让它从我的临时表中识别列的诀窍是什么

CREATE PROCEDURE [dbo].[GetCategoryPriceRanges] 
@CategoryId int 
AS
BEGIN

DECLARE @MinPrice money, @MaxPrice money    
SELECT  @MinPrice = MIN(ourPrice),@MaxPrice = MAX(ourPrice)

DECLARE @loopCatch int

--catch infinite loops
SELECT @loopCatch = 1
WHILE @thisLow <= @maxPrice AND @loopCatch < 100
    BEGIN
        INSERT INTO #prices(lowRange, hiRange) VALUES (@thisLow, @thisHigh)
        SET @thisLow = @thisHigh + 1
        SET @thisHigh = 2 * @thisLow - 1
        SELECT @loopCatch = @loopCatch + 1
    END
SELECT * FROM #prices
DROP TABLE #prices
END
创建过程[dbo]。[GetCategoryPriceRanges]
@范畴内
作为
开始
申报@MinPrice money、@MaxPrice money
选择@MinPrice=MIN(我们的价格),@MaxPrice=MAX(我们的价格)
声明@loopCatch int
--捕捉无限循环
选择@loopCatch=1

而@thisLow如果您有一个返回相同列集的表,则可以在数据模型图中指定存储过程来返回该类型。 (将存储过程拖到存储过程上,或在存储过程的属性中进行设置。)

或者,您可以使用这组列创建一个视图,并指定存储过程以返回该视图。
(在存储过程的return-type属性上。)

不确定visual studio的旧版本,但我正在使用2010,我通过进入dbml设计器并添加一个类解决了这个问题

然后在新类中,添加临时表中存储的进程将返回的字段。i、 e.右键单击类并添加->属性


然后将存储过程的返回类型设置为新创建的类

我通过在包含临时表的存储过程顶部添加
SET FMTONLY OFF
解决了这个问题。VisualStudio立即自动生成这些类型