zoukankan      html  css  js  c++  java
  • EF导航属性

      其实有个小问题困扰了我好久,在年前一个项目的时候 当我使用EF向数据库添加一条数据并SaveChanges()之后,立即根据主键再查询出这条数据的时候,发现所有的导航属性竟然都没有值。

      直接上测试项目,我们要创建两个对象,分别是Users和Orders,Users和Order的关系是一对多的关系。先补充一个小知识(我非常小白)_codeFitst.Orders.Add(order);如果order主键是自动增加的,当_codeFitst.SaveChanges();执行之后,order对象中的id会刷新(我今天才知道(-__-)b)。

                var _codeFitst = new CodeFirst.Entities.SmartStartEntities();
                CodeFirst.Model.Orders order = new Model.Orders()
                {
                    IsComplete = false,
                    Name = "抬头仰望",
                    UserId = 1,
                };
                _codeFitst.Orders.Add(order);
                _codeFitst.SaveChanges();
                var id = order.Id;
                var user = _codeFitst.Orders.SingleOrDefault(s => s.Id == order.Id).Users;
                var _codeFitstTwo = new CodeFirst.Entities.SmartStartEntities();
                var users = _codeFitstTwo.Orders.SingleOrDefault(s => s.Id == order.Id).Users;
    放到控制台Main函数内即可

    运行之后,我们断点调试,可以看见

    user对象是null 没有值得,而users对象就是有值得。由此可以得出EF在做查询方法的时候首先是在上下文的集合里面去查寻是否有符合的对象,没有再连接数据库去查询。

  • 相关阅读:
    使用 typeScript 规范代码
    图片 剪切 上传
    hybrid
    resful
    区块链
    前端数据采集 埋点 追踪用户系列行为
    kafka生产消息的速度跟什么有关?
    引用:实际数据库需求变化及演变
    HBase学习
    使用scala开发spark入门总结
  • 原文地址:https://www.cnblogs.com/zk3113/p/5285150.html
Copyright © 2011-2022 走看看