1

我正在学习MVC4。

我的问题是这个。当从存储过程中查询数据时,MVC 模型是否可以提供多个记录集?

所以让我添加一些上下文。在我的数据库中,我有 2 个表和一个存储过程,定义如下:

CREATE TABLE [dbo].[RnDParent](
[ParentID] [int] IDENTITY(1,1) NOT NULL,
[Name] [varchar](50) NOT NULL,
CONSTRAINT [PK_RnDParent] PRIMARY KEY CLUSTERED 
(
[ParentID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

CREATE TABLE [dbo].[RnDChild](
[ChildID] [int] IDENTITY(1,1) NOT NULL,
[ParentID] [int] NOT NULL,
[Label] [varchar](50) NOT NULL,
[Value] [money] NOT NULL,
CONSTRAINT [PK_RnDChild] PRIMARY KEY CLUSTERED 
(
[ChildID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

CREATE PROCEDURE Proc_RnDProcedure_GetParentByID 
@ParentID int
AS
BEGIN

SELECT [ParentID]
,[Name]
FROM [PriceCal3].[dbo].[RnDParent]
WHERE [ParentID] = @ParentID

SELECT [ChildID]
,[ParentID]
,[Label]
,[Value]
FROM [PriceCal3].[dbo].[RnDChild]
WHERE [ParentID] = @ParentID

END
GO

然后,我创建了一个 MVC4 项目并使用 ADO.Net 实体数据模型控件创建模型,选择存储过程 Proc_RnDProcedure_GetParentByID 作为我要使用的对象。

连接字符串的 multipleactiveresultsets 键设置为 True;

当我查看存储过程模型的代码时,它的定义如下。

namespace RnDMVC4Project.Models
{
using System;

public partial class Proc_RnDProcedure_GetParentByID_Result
{
public int ParentID { get; set; }
public string Name { get; set; }
}
}

Child 表中的结果没有对记录集的引用。

由于此类是自动生成的,是否可以包含子表中的记录?如果是的话,我错过了哪一块拼图?

预先感谢您的任何帮助。

4

1 回答 1

1

因为只有一个对象,你能做到吗?

SELECT c.[ChildID]
,c.[ParentID]
,c.[Label]
,c.[Value]
,p.[Name]
FROM [PriceCal3].[dbo].[RnDChild] as c
INNER JOIN [PriceCal3].[dbo].[RnDParent] ON c.[ParentID] = p.[ParentID]
WHERE c.[ParentID] = @ParentID
于 2013-08-20T12:43:58.150 回答