我应该处理EF4.0 ObjectContexts吗?

时间:2011-04-17 21:54:41

标签: entity-framework-4

我有一个简单的UnitOfWork模式与实体框架4一样,如下:

public class UnitOfWork
{
    private readonly myEntities _context;

    public UnitOfWork()
    {
        _context = new myEntities();
    }

    public myEntities Context { get { return _context; } }

    public void SaveChanges()
    {
        _context.SaveChanges();
    }

    public void Finish()
    {
        _context.Dispose();
    }
}

我的问题是:我需要Finish方法吗?我是否需要在Dispose派生的实体对象上显式调用ObjectContext,还是应该让垃圾收集器处理它?<​​/ p>

1 个答案:

答案 0 :(得分:4)

由于EF上下文是一次性的,并且其核心代表数据库连接是,您应该Dispose()它。

为了让UnitOfWork课程的消费者更轻松一点,我会让它实现IDisposable并反对提供Finish()方法。这样就可以在using块中使用。