我的扩展方法中的上下文和可用性存在问题。
基本上我正在使用 UNITY,目前每次我调用我的数据层时它都会为我提供一个新的 DBContext 实例(它被注入到构造函数中)。
我还放置了一些与数据层返回的 IQueryable 一起使用的扩展方法,因此我实际上可以执行以下操作。
var result = dataLayer.GetItems().WithId(3)
withID 是一种扩展方法,我也有其他扩展方法,我需要对表进行连接,因为表/字段不在我的 IQueryable 中。
问题是我的 dbContext 每次都注册给我一个新实例,所以我收到“不同上下文......”形式的错误。
但是我应该配置 Unity,以便每次都为我提供相同的 dbcontext 实例,因为 dbcontext 应该是 SHORT LIVED。当然,如果我这样做了,我认为我的问题将得到解决,因为数据层和扩展方法将使用相同的 DBContext 对象。
我使用 EF 4.1 和 POCO 类,没有跟踪,我有一个模型。因此,在附加表上进行连接的唯一方法是访问我的 dbcontext?
有人对我的选择有什么建议吗?
提前致谢。