嗨我试图在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