我似乎无法将其读入Entity Framework并使用LINQ,因为我收到此错误:
无法检测到以下存储过程的返回类型。在“属性”窗口中为每个存储过程设置返回类型。
我尝试使用谷歌搜索,但解决方案似乎不在我的脑海里..我可以解决这个问题吗?绝望= [
我能想到做这项工作的唯一方法是创建一个新表..但我只能使用存储过程
ALTER PROCEDURE [dbo].[GetGame_FantasyHome]
-- Add the parameters for the stored procedure here
@GameDate varchar(8),
@TricodeHome varchar(3)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
CREATE TABLE #FantasyHome(
GameKey int,
PlayerName varchar(50),
Tricode varchar(3),
StatString varchar(50),
Position varchar(20),
FantasyScore int
)
DECLARE @gameKey int
SET @gameKey = (SELECT GameKey FROM Games WHERE GameDate=@GameDate
AND TricodeHome=@TricodeHome)
INSERT #FantasyHome
SELECT TOP 1 p.GameKey, p.PlayerName, p.Tricode, p.StatString, p.Position,
(p.Yards/25 + p.Touchdowns * 6 - p.Interceptions * 2) AS FantasyScore
FROM GamePassers AS p
WHERE p.GameKey=@gameKey AND p.Tricode=@TricodeHome
ORDER BY FantasyScore DESC, p.Yards DESC
SELECT *
FROM #FantasyHome
ORDER BY FantasyScore DESC
DROP TABLE #FantasyHome
END
答案 0 :(得分:2)
·让这些类型的存储过程工作的一种方法是 手动编辑DBML或为过程编写自己的方法签名 在部分类中处理从存储的多个记录集返回 LINQ的程序请看这里的链接。
·第二种方法是避免在存储中使用#temp Table 过程,而不是你可以使用如下所示的表类型变量 (@TempTable)
更多信息here。请务必阅读该博文中指出的article about table variables in T-SQL。
修改强> 检查this SO question的答案以供参考。