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