わかりましたので、私はちょうどnhibernateに入っています(流暢を使用しています)。
私が気に入っている点の 1 つは、Repository パターンを使用できることです (詳細については、nhibernate rhino ブログを参照してください)。
基本的にジェネリックを使用して、すべてのデータベース テーブルで機能するメソッドを作成できます。
public interface IRepository<T>
{
T GetById(int id);
ICollection<T> FindAll();
void Add(T entity);
void Remove(T entity);
}
public class Repository<T> : IRepository<T>
{
public ISession Session
{
get
{
return SessionProvider.GetSession();
}
}
public T GetById(int id)
{
return Session.Get<T>(id);
}
public ICollection<T> FindAll()
{
return Session.CreateCriteria(typeof(T)).List<T>();
}
public void Add(T t)
{
Session.Save(t);
}
public void Remove(T t)
{
Session.Delete(t);
}
}
次に、Repository クラスを継承し、そのエンティティに固有のメソッドを追加できます。
Update メソッドを追加しようとしたとき、リポジトリ パターンはコレクションに作用するはずだと誰かが言いましたか? ここで物事を間違って見ていますか?update メソッドを作成できないのはなぜですか?
更新メソッドを追加しようとしましたが、セッションを処理してデータベースを更新する方法について混乱していますか?
エンティティごとにすべてのデータベース アクセス用の単一の場所が必要なため、UserRepository にはすべての基本的な CRUD があり、GetUserByEmail() などの他のメソッドが含まれている可能性があります。