LINQ to SQL -- 无法修改存储过程的返回类型

22
当我将一个特定的存储过程拖入VS 2008数据库模型设计器时,它的返回类型被设置为“none”,而且是只读的,所以我无法更改它。设计器代码显示其返回int类型,如果我手动更改它,则在下一次构建时它会被撤销。
但对于另一个(几乎相同的)存储过程,我可以很好地更改返回类型(从“自动生成的类型”到我想要的类型)。
我在两台独立的机器上都遇到了这个问题。有什么想法吗?
以下是可行的存储过程:
USE [studio]
GO
/****** Object:  StoredProcedure [dbo].[GetCourseAnnouncements]    Script Date: 05/29/2009 09:44:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[GetCourseAnnouncements]
    @course int
AS
SELECT * FROM Announcements WHERE Announcements.course = @course
RETURN

而这个则不行:

USE [studio]
GO
/****** Object:  StoredProcedure [dbo].[GetCourseAssignments]    Script Date: 05/29/2009 09:45:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[GetCourseAssignments]
    @course int
AS
SELECT * FROM Assignments WHERE Assignments.course = @course ORDER BY date_due ASC
RETURN

在尝试添加一个查询了该数据库中不存在的表格的存储过程时,我遇到了这个问题。 - The Muffin Man
12个回答

0

好的,我不想在我的Designer.cs代码中更改任何内容,我知道有一个不同的问题,它与我的存储过程无关(我也没有使用临时表)。

仅仅从数据库中删除存储过程并更新模型并没有帮助。新创建的模型仍然存在相同的问题...

我发现的是,由于某种原因,在DatabaseModel -> Function Imports中创建了我的存储过程的副本。

我所做的是,删除Function Imports中的重复对象并更新模型。它奏效了!

敬礼, Chris


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接