C# MSLinqToSqlGenerator如何确定存储过程的返回类型? 我有一个存储的procudre SP,如下所示:
当我将SP添加到dbml designer的SP窗格时,我希望MSLinqToSqlGenerator将ISingleResult创建为返回值类型。令我惊讶的是,返回值类型是int。显然,生成器正在使用某些标准来确定返回值类型。我还有其他类似的SP返回ISingleResult类型 有人知道是什么导致发电机出现这种情况吗 顺便说一句,这个网站上有人建议重新创建SP,从dbml中删除引用,重新启动Visual Studio VS并再次将其添加到dbml中。我经历了所有这些都没有用 我的怀疑在于临时桌上的人失踪了 欢迎任何意见或建议 谢谢C# MSLinqToSqlGenerator如何确定存储过程的返回类型? 我有一个存储的procudre SP,如下所示:,c#,visual-studio-2008,sql-server-2005,linq-to-sql,C#,Visual Studio 2008,Sql Server 2005,Linq To Sql,当我将SP添加到dbml designer的SP窗格时,我希望MSLinqToSqlGenerator将ISingleResult创建为返回值类型。令我惊讶的是,返回值类型是int。显然,生成器正在使用某些标准来确定返回值类型。我还有其他类似的SP返回ISingleResult类型 有人知道是什么导致发电机出现这种情况吗 顺便说一句,这个网站上有人建议重新创建SP,从dbml中删除引用,重新启动Visual Studio VS并再次将其添加到dbml中。我经历了所有这些都没有用 我的怀疑在于临时
Cullen在特殊条件下非常简单 SQL允许您在不调用过程的情况下查询resultset架构 在不太特殊的条件下*,SQL将在每次调用时为您提供备用答案
*那些有IF语句的。这可能是故意的。我对SQL的了解还不足以回答这个问题。在特殊条件下,它非常简单 SQL允许您在不调用过程的情况下查询resultset架构 在不太特殊的条件下*,SQL将在每次调用时为您提供备用答案 *那些有IF语句的。这可能是故意的。我对SQL的了解还不足以回答这个问题。我在最初的帖子中提到我怀疑临时表。临时表是通过SELECT INTO PeopleCameMissing命令创建的,因此其定义是动态的,因此当存储过程添加到dbml设计器时,生成器对表的定义没有任何线索。如果我让生成器知道表定义,也许我可以得到所需的返回类型。基于这个推测,我做了一个测试。我宣布一个表格如下: 并将原声明修改如下:
INSERT INTO @PeopleCameMissing (
MemberID,
FirstName,
MiddleName,
LastName,
Suffix,
PhoneHome,
PhoneCell,
Email)
SELECT
c.MemberID,
c.FirstName,
c.MiddleName,
c.LastName,
c.Suffix,
c.PhoneHome,
c.PhoneCell,
c.Email
FROM [dbo].[Members] c
WHERE c.MemberID IN (SELECT a.MemberID FROM #PeopleCameMissing a)
ORDER BY c.LastName,c.FirstName;
DROP TABLE #PeopleCameMissing;
SELECT *
FROM @PeopleCameMissing
ORDER BY LastName,FirstName;
然后我再次将存储过程添加到dbml设计器中。这一次,生成器创建了所需的返回类型:ISingleResult。这似乎证明了我的猜测。我在最初的帖子中提到我怀疑临时表。临时表是通过SELECT INTO PeopleCameMissing命令创建的,因此其定义是动态的,因此当存储过程添加到dbml设计器时,生成器对表的定义没有任何线索。如果我让生成器知道表定义,也许我可以得到所需的返回类型。基于这个推测,我做了一个测试。我宣布一个表格如下:
并将原声明修改如下:
INSERT INTO @PeopleCameMissing (
MemberID,
FirstName,
MiddleName,
LastName,
Suffix,
PhoneHome,
PhoneCell,
Email)
SELECT
c.MemberID,
c.FirstName,
c.MiddleName,
c.LastName,
c.Suffix,
c.PhoneHome,
c.PhoneCell,
c.Email
FROM [dbo].[Members] c
WHERE c.MemberID IN (SELECT a.MemberID FROM #PeopleCameMissing a)
ORDER BY c.LastName,c.FirstName;
DROP TABLE #PeopleCameMissing;
SELECT *
FROM @PeopleCameMissing
ORDER BY LastName,FirstName;
然后我再次将存储过程添加到dbml设计器中。这一次,生成器创建了所需的返回类型:ISingleResult。这似乎证明了我的猜测
INSERT INTO @PeopleCameMissing (
MemberID,
FirstName,
MiddleName,
LastName,
Suffix,
PhoneHome,
PhoneCell,
Email)
SELECT
c.MemberID,
c.FirstName,
c.MiddleName,
c.LastName,
c.Suffix,
c.PhoneHome,
c.PhoneCell,
c.Email
FROM [dbo].[Members] c
WHERE c.MemberID IN (SELECT a.MemberID FROM #PeopleCameMissing a)
ORDER BY c.LastName,c.FirstName;
DROP TABLE #PeopleCameMissing;
SELECT *
FROM @PeopleCameMissing
ORDER BY LastName,FirstName;