数据访问层 - 设计类应该在哪里创建存储的责任

Dee*_*ons 6 c# data-access-layer responsibility

我正在使用ADO.NET 2.0和C#,Sql Server 2005设计数据访问层.我经常与大脑争论放置这些调用的位置.对于可维护的健壮代码,我应遵循以下哪种方式.

方法1

Public Class Company
{

public string CompanyId
{get;set;}

public string CompanyAddress
{get;set;}

public bool Create()
{
}

public bool Update()
{
}

public bool Delete()
{
}

}
Run Code Online (Sandbox Code Playgroud)

方法2

Public Class Company
{

public string CompanyId
{get;set;}

public string CompanyAddress
{get;set;}
}
Run Code Online (Sandbox Code Playgroud)

我会使用下面的另一个类来进行核心数据访问.如下

Public Class CompanyRepository
{

public Company CreateCompany(string companyId,string companyDescription)
{
}

public bool UpdateCompany(Company updateCompany)
{
}

public bool DeleteCompany(string companyId)
{
}

public List<Company> FindById(string id)
{
}


}
Run Code Online (Sandbox Code Playgroud)

Jas*_*own 7

使用方法2. 从数据源读取/写入不是公司类的责任(单一责任原则).但是,我甚至会创建一个ICompanyRepository接口,然后CompanyRepository为接口创建一个实现.这样,您可以将ICompanyRepository注入需要保存/检索公司信息的类中.它还允许更容易的单元测试以及将来创建不同实现的能力(从数据库切换到xml文件或其他).

  • @TomTom:你是写LYNC的人,而不是LINQ(在你的第一个评论中).我知道LINQ是什么.我刚刚提供了一个链接到LYNC,因为我不知道它是什么,从来没有听说过你提起它(并且混淆了我,显然是操作).你为什么不停止成为一个混蛋并且有用.提供更好的答案,而不是不成熟. (2认同)