Я работаю над фабричной системой компонентов, где ObjectContexts автоматически создаются в зависимости от некоторых правил конфигурации. Каждый раз, когда вызывается метод, фабрика компонентов решает, где создать область ObjectContext/Transaction и т. Д.ObjectContext внутри другого объекта ObjectContext
В большинстве случаев мне удалось обрабатывать ObjectContext и удалять его. Но когда метод recursivelly вызывает себя, я создаю ObjectContext каждый раз при вызове метода. Это было бы примерно так:
using (MyEntities entitityContext = new MyEntities())
{
// do some code here
entitityContext.SaveChanges();
using (MyEntities anotherEntitityContext = new MyEntities())
{
// do some other code here
anotherEntitityContext.SaveChanges();
}
}
Как с этим связана работа EntityFramework? Второй объект ObjectContext совпадает с первым? Если нет, как мне удастся обойти второй ObjectContext как «ту же» ссылку на первую с той же «новой конструкцией ObjectContext()»?
Я знаю, что на выровненных TransactionScopes соединяются друг с другом в последовательности, в зависимости от конфигураций транзакций. Я хочу, чтобы ObjectContext имел такое же поведение. Возможно ли это без ссылки на родительский объект ObjectContext?
Похоже, вы изобретаете контейнеры IoC. Большинство контейнеров IoC позволяют конфигурировать управление продолжительностью жизни. –
Я бы добавил, что это нормально, но вероятность того, что ошибки откроют несколько контекстов. Я знаю, что сделал ошибку ... в любом случае, если IoC слишком много для вашего решения, по крайней мере, подумайте о коротком жизненном цикле singleton. –