嗨我試圖在EF4上創建一個通用庫。我希望創建一個存儲庫類,以保持ObjectContext自身的狀態,而不是使用不同的Repository & UnitOfWork實現。我的界面如下所示:通用庫設計
/// <summary>
/// Contract for base generic repository
/// </summary>
public interface IRepository
{
ActionResult SaveData<TEntity>(TEntity entityObj, bool commitTransaction) where TEntity : IEntity, new();
ActionResult SaveData<TEntity>(ICollection<TEntity> entityObjects, bool commitTransaction) where TEntity : IEntity, new();
ActionResult DeleteData<TEntity>(TEntity entityObj, bool commitTransaction) where TEntity : IEntity, new();
ActionResult DeleteData<TEntity>(ICollection<TEntity> entityObjects, bool commitTransaction) where TEntity : IEntity, new();
ICollection<TEntity> SelectAll<TEntity>() where TEntity : IEntity, new();
ICollection<TEntity> SelectByCondition<TEntity>(Func<TEntity, bool> condition) where TEntity : IEntity, new();
}
ActionResult是一個類,它告訴我特定的事務是否成功執行。現在我不想維護倉庫之外的事務狀態。所以每次保存/刪除我們都可以傳遞布爾值。第一次,事務對象可以在內部檢查,然後當我打電話給我的最後一個事務時,我可以發送committransaction true,這將調用SaveChanges()函數。
我的問題是:這種方法設計好嗎?我可以面對什麼問題?
+1。我完全同意。 – Steven 2011-03-01 19:04:27