Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 另一个ObjectContext中的ObjectContext_Entity Framework_Recursion_Entity_Transactionscope_Objectcontext - Fatal编程技术网

Entity framework 另一个ObjectContext中的ObjectContext

Entity framework 另一个ObjectContext中的ObjectContext,entity-framework,recursion,entity,transactionscope,objectcontext,Entity Framework,Recursion,Entity,Transactionscope,Objectcontext,我正在开发一个组件工厂系统,其中ObjectContext根据一些配置规则自动创建。每次调用方法时,组件工厂都会决定在何处创建ObjectContext/事务范围等 在大多数情况下,我能够处理ObjectContext的创建和处理。但是当一个方法递归地调用自身时,每次调用该方法时,我都会创建一个ObjectContext。应该是这样的: using (MyEntities entitityContext = new MyEntities()) { // do some code here

我正在开发一个组件工厂系统,其中ObjectContext根据一些配置规则自动创建。每次调用方法时,组件工厂都会决定在何处创建ObjectContext/事务范围等

在大多数情况下,我能够处理ObjectContext的创建和处理。但是当一个方法递归地调用自身时,每次调用该方法时,我都会创建一个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成为对具有相同“new ObjectContext()”构造的第一个ObjectContext的“相同”引用


我知道,在对齐的TransactionScope上,根据事务配置,它们按顺序相互连接。我希望ObjectContext具有相同的行为。这在不引用父对象上下文的情况下是可能的吗?

我发现Phil Soady是正确的。我找到了另一种使用ObjectContext而不必创建多个对象的方法。谢谢你的评论。

听起来你在重新设计IoC容器。大多数IoC容器都允许配置生命周期管理。我想补充一点,这是可以的,但可能会有多个漏洞打开。我从犯错误中知道。。。不管怎样,如果国际奥委会对你的解决方案太多,至少考虑短生命周期单体。