C# 对于刚添加的实体的属性,实体框架延迟加载失败

C# 对于刚添加的实体的属性,实体框架延迟加载失败,c#,entity-framework,C#,Entity Framework,尝试通过延迟加载刚添加的实体来获取属性失败 到目前为止,我找到的唯一解决方案是取消注释代码,换句话说,创建另一个管理器,该管理器反过来创建另一个上下文,因为每个管理器都有一个上下文实例,然后重新查询实体 我还尝试在所有管理者之间创建一个共享上下文实例,但结果相同。 你知道为什么重新创建上下文可以解决这个问题,以及如何解决这个问题吗 以下是我用来测试的代码: IOrderManager ordManager = new OrderManager(); [TestMethod]

尝试通过延迟加载刚添加的实体来获取属性失败

到目前为止,我找到的唯一解决方案是取消注释代码,换句话说,创建另一个管理器,该管理器反过来创建另一个上下文,因为每个管理器都有一个上下文实例,然后重新查询实体

我还尝试在所有管理者之间创建一个共享上下文实例,但结果相同。 你知道为什么重新创建上下文可以解决这个问题,以及如何解决这个问题吗

以下是我用来测试的代码:

    IOrderManager ordManager = new OrderManager();

    [TestMethod]
    public void CategoryFromOrder()
    {
        Order order = new OrderBuilder()
            .SetCategory(2)
            .SetLegalForm(8)
            .SetClientIdentifier(new Random().Next(11111111,99999999).ToString())
            .SetLastName("Chaouachi")
            .SetFirstName("Saif")
            .SetQuantity(450)
            .SetStatus(Order.StatusValues.New)
            .SetAccountHolder("John")
            .SetPrimaryKey(PrimaryKeyFactory.GetOrderPrimaryKey(null, 1, 2))
            .Build();


        int res = ordManager.AddOrder(order);


    //ordManager = new OrderManager();                       
    // order = ordManager.GetOrder(PrimaryKeyFactory.GetOrderPrimaryKey(res, 1, 2));

        var categ = order.Category;

        Assert.IsNotNull(categ);
    }

要使用代码优先实体框架进行延迟加载,您需要一个代理对象(从原始POCO类继承的类的实例)。从代码中看不明显,但我希望原始对象是通过new Order()创建的,如果需要代理对象,应该使用DataContext.Orders.Create()。结果对象将是一个代理,延迟加载将起作用