我知道這個問題之前已經被問過好幾次了,但是我找不到我正在尋找的答案。 所以,我已經實現了Repository(generic)和UOW模式,所以我可以使用EF訪問我的數據庫。這裏是UnitOfWork類的一部分:如何在工作單元模式中正確使用Dispose?
protected virtual void Dispose(bool disposing)
{
if (!disposed)
{
if (disposing)
{
entities.Dispose();
}
}
this.disposed = true;
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
問題是:誰在調用void Dispose方法?我沒有看到該方法的用法示例。
這一點,單位上班類的上半部分:
private BDEntities entities = null;
public UnitOfWork()
{
if (entities == null)
{
entities = new BDEntities();
}
}
這是正確的?我應該使用「使用」嗎?如果是,那爲什麼我需要Dispose方法?
你能給我一個正確和簡單的用法的例子嗎?
謝謝 Rotem公司
非常感謝!因此,基本上,該方法應該如下所示: if(entities == null) {0122}使用(entities = new BSODEntities()){}; } 我真的不需要Dispose方法,因爲「using」已經封裝了它?對? –
是的,這基本上是我認爲應該使用的。至於Dispose()方法:如果使用using塊,則不必在完成對象時顯式調用它。但是你需要在你的類中實現它,所以它可以通過來自using塊的封裝調用來調用。 –