实体框架 6 包括在 null 中检索数据 - 一对一关系

发布于 2025-01-18 03:14:29 字数 1224 浏览 1 评论 0原文

百货商店模型。他们是一对一的关系。当我仅执行(包含)某些模型时,它会为我带来完整的数据。 中的数据正确

 var orders = await _context.Order.Include(o => o.Departament)
                                  .Include(o => o.Store).ToArrayAsync();

数据库Model Order

 public class Order
    {   [Key]
        public string Order_Id { get; set; }

        [DataType(DataType.Date)]
        public DateTime Date { get; set; }

        public string Number_Order { get; set; }  
        
        public int Qty { get; set; }

        [DataType(DataType.DateTime)]
        public DateTime Imported { get; set; }

        [DataType(DataType.DateTime)]
        public DateTime Modified { get; set; }

        [DataType(DataType.DateTime)]
        public DateTime Exported { get; set; }

        public bool IsActive { get; set; }

        [ForeignKey("Departament")]
        public string DepartmentId { get; set; }
        
        [ForeignKey("Store")]
        public string StoreId { get; set; }

        public virtual ICollection<OrderDetail> OrderDetails { get; set; }
       
        public Departament Departament { get; set; }

        public Store  Store { get; set; }
    }

我只需要解决正确获取数据的问题。

Department and store model. They are a one to one relationship. when I do the (Include) only some models it brings me the complete data.
The data is correctly in the database

 var orders = await _context.Order.Include(o => o.Departament)
                                  .Include(o => o.Store).ToArrayAsync();

Model Order

 public class Order
    {   [Key]
        public string Order_Id { get; set; }

        [DataType(DataType.Date)]
        public DateTime Date { get; set; }

        public string Number_Order { get; set; }  
        
        public int Qty { get; set; }

        [DataType(DataType.DateTime)]
        public DateTime Imported { get; set; }

        [DataType(DataType.DateTime)]
        public DateTime Modified { get; set; }

        [DataType(DataType.DateTime)]
        public DateTime Exported { get; set; }

        public bool IsActive { get; set; }

        [ForeignKey("Departament")]
        public string DepartmentId { get; set; }
        
        [ForeignKey("Store")]
        public string StoreId { get; set; }

        public virtual ICollection<OrderDetail> OrderDetails { get; set; }
       
        public Departament Departament { get; set; }

        public Store  Store { get; set; }
    }

.

I just need to solve that problem of getting the data correctly.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无尽的现实 2025-01-25 03:14:29
  1. 一对一是什么意思!!!我认为你的设计是一对多的。
    正如 Steve Py 在他的评论中所说的 ## Order->Department 和 Order->Store 之间的关系不是一对一,而是多对一。 (多个订单可以指同一个部门) ##
  2. 使用虚拟关键字作为导航属性。
    根据 https://stackoverflow.com/a/41881299/18399373
    您可以使用 virtual 关键字以惰性方式加载相关数据,
  3. 使用显式加载并检查它。
    实体框架支持三种方式加载相关数据 - 急切加载、延迟加载和显式加载
  1. what do u mean one to one!!! i think your design is one to many.
    as Steve Py said in his comment ## The relationship between Order->Department and Order->Store is not One-to-One, it is Many-to-One. (Many orders could refer to the same Department) ##
  2. use virtual keyword for navigation properties.
    accroding to https://stackoverflow.com/a/41881299/18399373
    you can use virtual keyword to load related data in lazy way
  3. use explicit loading and check it.
    Entity Framework supports three ways to load related data - eager loading, lazy loading and explicit loading
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文