代码之家  ›  专栏  ›  技术社区  ›  Don Albrecht

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

  •  4
  • Don Albrecht  · 技术社区  · 15 年前

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

    最终结果让我尝试将从一个存储库检索到的对象附加到从另一个存储库检索到的对象,这会导致异常。

    1 回复  |  直到 7 年前
        1
  •  5
  •   Mark Seemann    15 年前

    使用 构造器注入 要将数据上下文插入每个存储库,请执行以下操作:

    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;
    }
    

    这允许您以任何必要的方式共享或不共享数据上下文。