【发布时间】:2015-11-12 18:47:41
【问题描述】:
我正在使用 Unity 进行依赖注入。
我有一个方法负责实例化数据库对象,如下所示:
container.RegisterType<DB>(
new InjectionFactory(c =>
{
return new DB();
})
);
问题是,我有一个方法使用两个不同的对象,这些对象应该被引用到同一个数据库实例,但看起来 Unity 在每次注入时都会创建一个新的数据库对象实例。
查询 LINQ 示例:
var test = from tb1 in _db1.method()
join tb2 in _db2.method() on tb1.code equals tb2.code
_db1 和 _db2 引用相同的 DB 对象如下
DB _db = null;
public db1(DB dataContext)
{
_db = dataContext;
_db.CommandTimeout = 3600;
}
所以我收到以下错误:
查询包含对在不同数据上下文中定义的项目的引用
有人可以帮我修复 Unity 寄存器以引用已经实例化的 DB 对象,而不是每次都创建一个新对象吗?
【问题讨论】:
标签: c# linq asp.net-web-api dependency-injection unity-container