各エンティティのデータベース操作をどこに置くべきかを理解しようとしています。この混乱の前は、エンティティごとに、これらすべてのデータベース操作をプロバイダークラスで実行していました。プロバイダークラスとは、各クラスにプロバイダーがあることを意味します。そのような:
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");
問題は、エンティティ自体のエンティティに関連するこのすべてのデータベース操作をどのように実行できるかということです。それは良い習慣ですか?この概念を理解するには何を読む必要がありますか?
前もって感謝します。