看來我現在已經解決了我所有的LINQ問題,但我並沒有在開發一個實際的模型。事情是這樣的,我不想希望被綁在一個單一的技術,我想有自由實施不同的數據訪問技術,並工作到一個單一的接口。ASP.NET MVC模型接口
現在,我從來沒有這樣做過,但基於我的面向對象的知識和經驗,我想出類似如下的想法:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Linq;
namespace Intranet.Data.Accounts
{
interface IContractsControl
{
ContractsControlViewData GetContracts(System.Nullable<int> contractTypeID,
System.Nullable<int> responsibilityID,
string expenseType,
System.Nullable<int> supplierID,
string businessID);
ContractsControlViewData GetContract(int contractID);
}
}
我已經得到了這是如何的幾個問題應該管用。
- 接口在哪裏生活,考慮到我正在使用由Phil Haack開發的區域庫。現在我已經在根級創建了一個名爲「Data」的文件夾(如您從名稱空間中看到的那樣)。
- 我們的存儲過程具有虛假名稱,因爲它們被集中到一個數據庫中,如果我正在使用對象,我可以轉而使用基於對象的解決方案來訪問sprocs。在我的數據訪問庫中的名稱是否必須反映這種情況下的存儲過程?
- 使用這樣的庫將允許我在我的控制器中執行
Accounts.GetContracts()
。這是明智的嗎? - 這種方法是否有任何設計建議?即命名方案。
- 實際實施應該在哪裏生活?在與界面相同的文件夾中?
想法是,如果我們曾經溝通過LINQ,那麼我們可以使用不同的數據訪問技術(實體框架,普通SQL等)。我很樂意聽到那些更有經驗的人的評論/批評/評價。
有關信息,您可能會發現「int?」一個更快的方式說「System.Nullable」... –
2009-06-23 09:34:59
乾杯馬克,我曾經想過這個,因爲我看到兩個都在使用。我更喜歡System.Nullable,因爲我可以清楚地看到它是可空的。我常常瀏覽一下「?」做法。 –
Kezzer
2009-06-23 09:36:04