2013-05-17 59 views
1

我正在學習MVC4。在使用存儲過程時返回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表的結果的記錄集。

由於該類是自動生成的,是否可以包含子表中的記錄?如果是,我錯過了什麼拼圖?

非常感謝您的幫助。

回答

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 
相關問題