2010-07-28 79 views
2

目前,我有一組存儲過程被調用來填充頁面上的不同字段。我正在調用LINQ to SQL類的存儲過程,我放棄了它們,這很好。但是,它會自動生成(StoredProcedureName)結果類名稱,我必須使用它。ASP.NET MVC從存儲過程綁定的部分模型

無論如何要採取一個存儲過程並將結果綁定到多個類?例如,我有一個獲取博客帖子信息的存儲過程。我想將這些數據綁定到Post類和User類(對於作者),但是我沒有從存儲過程中檢索所有數據來填充整個Post對象或User對象(存儲過程只返回標題,內容和作者姓名)。

處理這種情況的最佳方法是什麼?我打開更改存儲過程,但我寧願不必返回數據,我不打算只用來填充完整的對象,我不能使用LINQ to SQL來查詢數據庫。

+0

實例可以請發表您的存儲過程的代碼? – 2010-07-28 18:54:29

+0

所以你想綁定,但不想拉取綁定所需的數據。有些事情必須給:)而且,我會問自己是否真的有必要。這聽起來像你的DAL存儲在特效中,所以界面是特效的參數/返回值,而不是你的域對象。 – 2010-07-28 19:04:40

+0

的確,我只是覺得有一個標準模型可以更直接地映射到表結構,因此對象的名稱會更有意義。所以即使他們不會被訪問,那麼這些模型就沒有辦法讓一個模型被綁定,而忽略了一些字段? – Jimmy 2010-07-28 19:11:00

回答

1

可以創建一個局部您的DataContext的和編寫返回IMultipleResults,帶有[與resultType(typeof運算(類名))],如下所示結合到每個相應的類的方法:

http://msdn.microsoft.com/en-us/library/bb399371.aspx

或者,你可以存儲的存儲過程中的變量目標類的結果,然後LINQ - 選擇新的情況是這樣的:

var result = dataContext.your_stored_proc(); 

var post = result.Select(s => new Post { Id = result.Id, Title = result.Title });