4
我在我的應用程序中有2個存儲庫,每個存儲庫都有自己的datacontext對象。使用LINQ2SQL在ASP.NET MVC中的各種模型庫共享數據上下文
最終的結果是,我試圖將從一個存儲庫中檢索到的對象附加到從不同存儲庫檢索到的導致異常的對象。
我在我的應用程序中有2個存儲庫,每個存儲庫都有自己的datacontext對象。使用LINQ2SQL在ASP.NET MVC中的各種模型庫共享數據上下文
最終的結果是,我試圖將從一個存儲庫中檢索到的對象附加到從不同存儲庫檢索到的導致異常的對象。
使用構造器注入注入的DataContext到每個庫:
public class MyRepository : IMyRepository
{
private readonly DataContext dataContext;
public MyRepository(DataContext dataContext)
{
if(dataContext == null)
{
throw new ArgumentNullException("dataContext");
}
this.dataContext = dataContext;
}
// implement MyRepository using this.dataContext;
}
這使您可以共享或不共享的DataContext在哪個方式是必要的。
爲什麼ArgumentNullException如果你說「這允許你共享或不共享DataContext」?我只是想明白,謝謝。 – 2011-05-02 22:05:40
衛兵條款在那裏保證班級的不變量。它與你是否可以共享DataContext(你可以)無關。 – 2011-05-03 04:51:45
謝謝馬克。如果我理解正確,你提出的解決方案是有一個額外的構造函數,所以你可能需要每個控制器一個DataContext? @Mark Seeman,再次感謝!我讀了很多mvc模式,最後我想我有這個答案:O) – 2011-05-03 13:00:25