使用LINQ2SQL在ASP.NET MVC中跨各种模型存储库共享数据上下文

时间:2010-01-08 20:53:53

标签: c# asp.net-mvc linq-to-sql

我的应用程序中有2个存储库,每个存储库都有自己的datacontext对象。

最终结果是我尝试将从一个存储库检索到的对象附加到从不同存储库检索到的对象,从而导致异常。

1 个答案:

答案 0 :(得分:5)

使用构造函数注入将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。