看来我现在已经解决了我所有的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