2011-04-17 24 views
1

我有一个简单的UnitOfWork模式与实体框架4去,像这样:我应该配置EF4.0 ObjectContexts吗?

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方法?我是否需要在我的ObjectContext衍生的实体对象上明确地调用Dispose,还是应该让垃圾收集器处理它?

回答

4

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

为了让您的UnitOfWork课程的消费者更容易一些,我将使其实现IDisposable以及反对提供Finish()方法。这样它可以用于using区块。

+0

这就是我认为的,是有道理的 - 只是想验证!谢谢! – 2011-04-17 22:55:50

相关问题