Използвам Unity за инжектиране на зависимости.
Имам метод, отговорен за инстанциране на обекта на базата данни, както следва:
container.RegisterType<DB>(
new InjectionFactory(c =>
{
return new DB();
})
);
Проблемът е, че имам метод, който използва два различни обекта, за които се предполага, че се отнасят към един и същ екземпляр на DB, но изглежда, че Unity създава нов екземпляр на DB Object при всяко инжектиране.
Пример за 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 обект, вместо да правя нов всеки път?