Я использую 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 = null;
public db1(DB dataContext)
{
_db = dataContext;
_db.CommandTimeout = 3600;
}
Итак, я получаю следующую ошибку:
Запрос содержит ссылки на элементы, определенные в другом контексте данных.
Может ли кто-нибудь помочь мне исправить регистр Unity, чтобы ссылаться на уже созданный объект БД, вместо того, чтобы каждый раз делать новый?