可以将ObjectContext的Dispose方法视为单元工作意义上的回滚吗?

时间:2012-11-21 16:54:27

标签: c# .net design-patterns entity-framework-4 unit-of-work

我正在实现实体框架实现的单元模式转发。

这是我的代码:

public sealed class UnitOfWork : IUnitOfWork
{
    private readonly ObjectContext _context;
    private IPostRepository _posts;

    public UnitOfWork(string connectionString)
    {
        _context = new ObjectContext(connectionString);
        _context.ContextOptions.LazyLoadingEnabled = true;
    }

    #region Implementation of IUnitOfWork

    /// <summary>
    /// Commit all changes.
    /// </summary>
    public void Commit()
    {
        _context.SaveChanges();
    }

    /// <summary>
    /// Rollback changes not stored in databse at 
    /// this moment. See references of UnitOfWork pattern
    /// </summary>
    public void Rollback()
    {
        // do nothing or dispose ? ...
    }

  .........................................................

    #endregion
}

现在我的问题是:

实现回滚方法的最佳方法是:什么都不做或处理掉    上下文对象?

问题如下:

如果在没有保存更改的情况下处置对象,则行为是回滚但是然后    例如,上下文被处理,如果我现在想要用它做一些事情会发生什么    保存新的更改?

请注意,NHibernate实现具有回滚行为的显式实现。

0 个答案:

没有答案