我正在试图确定每个实体的数据库操作应该放在哪里。在这种困惑之前,对于每个实体,我都是在一个提供程序类中进行所有这些数据库操作。提供程序类意味着每个类都有一个提供程序,例如:
class Member
{
public string FirstName;
public string LastName;
}
class MemberProvider
{
//Singleton
//Do database operations
......
public List<Member> GetItems(FirstName = null, LastName = null)
{
// run store procedure
//this returns List<Member> if any
}
public Member GetItem(int? Id = null,FirstName = null, LastName = null)
{
// run store procedure
//this return Member if any
}
....
}
当我需要一个带有筛选功能的成员列表时,我会这样做:
List<Member> members = MemberProvider.Instance.GetItems(FirstName = "John", LastName = "Black");
问题是如何在实体本身中执行与数据库操作相关的所有操作?这是一个好的做法吗?我应该读些什么来理解这个概念?
提前感谢您。