我現在的庫看起來像是:創建更新方法在我的NHibernate的倉庫
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);
}
}
接口:
public interface IRepository<T>
{
T GetById(int id);
ICollection<T> FindAll();
void Add(T entity);
void Remove(T entity);
}
我將如何創建一個更新的方法?
是否必須調用flush或transaciton commit來寫入數據庫?我試圖更新一個對象,並調用saveorupdate();但它並沒有改變數據庫中的值。
嗯,我正在創建一個數據層,我不希望更新從我的其他操作中分離出來。我希望我的UserRepository包含用戶實體的所有數據庫操作。 – mrblah 2009-08-18 20:08:18
我不是說有更新單獨,但完全沒有更新。只需在更改實體的值時自動發生更新。當我開始使用NHibernate時,我也使用了顯式更新,但是當我看到可以刪除它們時,我更改了存儲庫接口,在調用代碼中刪除了很多更新調用,並且應用程序仍然像以前一樣工作。開始刪除代碼。 – Paco 2009-08-18 21:39:44