c# - Entity Framework : after SaveChanges returned object doesn't have children

标签 c# asp.net-mvc entity-framework entity-framework-6

当我在数据库中保存一个对象然后检索保存的对象时,它显示所有空子对象。

我使用 Entity Framework 6,我一直使用下面示例中所示的查询,并且它始终正常工作,但我不明白为什么此查询显示空子对象。

public car save_car(car data)
{
    if (data.id_car == 0)
    {                
        _contextDrag.car.Add(data);
        _contextDrag.SaveChanges();                          
    }
    else
    {
        _contextDrag.SaveChanges();
    }

    return data;
}

public car get_car(long id_car)
{            
    car data = _contextDrag.car.FirstOrDefault(a => a.idCar == id_car);            
    return data;
}

最佳答案

那是因为你重用了你的 _contextDrag用于多个操作。当您调用 save_car - 保存的汽车存储在上下文中。当您随后调用 get_car - 返回相同 汽车实例。如果它的所有子属性都为空(例如是您添加的新实体)- 它的所有子属性仍为空,并且延迟加载将不起作用,因为它与您在 save_car 中拥有的实体完全相同。 .与往常一样,最好的方法是永远不要重用您的上下文。

关于c# - Entity Framework : after SaveChanges returned object doesn't have children,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42948190/

相关文章:

c# - 使用 C# 在 24 个随机大小的部分中拆分值

c# - 使用 Oracle Managed Driver Core 的 asp.net core docker 容器。打开连接时抛出 ORA-00604 和 ORA-01882

c# - 名称 'Model' 在 Razor 的当前上下文中不存在

c# - Entity Framework ;如何处理foreach循环中的异常并不断迭代

c# - 数据库初始化程序未播种

c# - 使用 LINQ 从不同类获取唯一列表

javascript - 如何将值从 javascript 变量传递给 razor 变量?

c# - 查询应该放在 ASP.NET MVC 中的什么地方

c# - 使用指向 POST 操作的 ReturnUrl 登录 : FAIL!

c# - Entity Framework 中的 OrderBy 虚拟属性