2011-04-17 71 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