0

我正在将 ASP.NET MVC3 与实体框架一起使用,并使用带有 DI (Ninject) 的通用存储库模式。

我有一个其他站点连接到它的主要项目。主项目有它自己的域存储库,它连接到数据库中的通用表。每个连接到它的站点也有它自己的域存储库,它连接到它自己的数据库表。我的问题是,当我尝试执行将站点表与主项目表结合起来的复杂 linq 查询时,代码不会喊他不能在同一查询中使用两个不同的 dbcontext。所以我必须划分我的查询并从一个存储库表 (ToList()) 中提取数据,然后才能在其他存储库表中使用它。从我的角度来看,我不能对两个存储库使用相同的 DbContext,因为主项目作为站点项目的 Dll 提供。

4

1 回答 1

2

你自己给出了答案。您不能DbContext对单个查询使用多个实例(这在您考虑时非常明显)。而是在单个 Web 请求中为所有存储库使用单个实例。Ninject 具有Per Web Request 生活方式

于 2012-05-07T07:29:32.450 回答