【发布时间】:2023-03-08 21:51:01
【问题描述】:
您好,我正在尝试在 EF4 之上创建一个通用存储库。与其采用不同的 Repository 和 UnitOfWork 实现,我希望创建一个存储库类,该类将在其内部维护 ObjectContext 的状态。我的界面如下:
/// <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 是告诉我特定事务是否成功执行的类。现在我不想在存储库之外维护事务状态。因此,每次保存/删除时,我们都可以传递 bool 值。第一次,可以在内部检查事务对象,然后当我调用我的最后一个事务时,我可以发送 committransaction true,这将调用 SaveChanges() 函数。
我的问题是:这种方法设计好了吗?我会面临哪些问题?
【问题讨论】: