From d131d16d171df29d0e41965c56d16351b5a77333 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Thu, 7 May 2020 19:53:23 +0000 Subject: [PATCH] --- server/AyaNova/biz/WorkOrderBiz.cs | 12 ++++++++++-- server/AyaNova/models/WorkOrderItem.cs | 2 ++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/server/AyaNova/biz/WorkOrderBiz.cs b/server/AyaNova/biz/WorkOrderBiz.cs index 77b0a128..d2c1f9fd 100644 --- a/server/AyaNova/biz/WorkOrderBiz.cs +++ b/server/AyaNova/biz/WorkOrderBiz.cs @@ -106,12 +106,20 @@ namespace AyaNova.Biz .ThenInclude(author => author.Photo) .ToList(); } -WARNING: Since version 3.0.0, each Include will cause an additional JOIN to be added to SQL queries produced by relational providers, whereas previous versions generated additional SQL queries. This can significantly change the performance of your queries, for better or worse. In particular, LINQ queries with an exceedingly high number of Include operators may need to be broken down into multiple separate LINQ queries in order to avoid the cartesian explosion problem. +WARNING: Since version 3.0.0, each Include will cause an additional JOIN to be added to SQL queries produced by relational providers, whereas previous versions generated additional SQL queries. +This can significantly change the performance of your queries, for better or worse. +In particular, LINQ queries with an exceedingly high number of Include operators may need to be broken down into multiple separate LINQ queries in order to avoid the cartesian explosion problem. */ //This is simple so nothing more here, but often will be copying to a different output object or some other ops //var ret = await ct.WorkOrder.SingleOrDefaultAsync(m => m.Id == fetchId); - var ret = await ct.WorkOrder.Include(w => w.WorkorderItems).SingleOrDefaultAsync(m => m.Id == fetchId); + var ret = + await ct.WorkOrder + .Include(w => w.WorkorderItems) + .ThenInclude(wi=>wi.WorkorderItemLabors) + .Include(w => w.WorkorderItems) + .ThenInclude(wi=>wi.worko) + .SingleOrDefaultAsync(m => m.Id == fetchId); if (logTheGetEvent && ret != null) { diff --git a/server/AyaNova/models/WorkOrderItem.cs b/server/AyaNova/models/WorkOrderItem.cs index 21a27a7c..f6f4f5fa 100644 --- a/server/AyaNova/models/WorkOrderItem.cs +++ b/server/AyaNova/models/WorkOrderItem.cs @@ -30,11 +30,13 @@ namespace AyaNova.Models //dependents public List WorkorderItemLabors { get; set; } + public List WorkorderItemParts { get; set; } public WorkOrderItem() { Tags = new List(); WorkorderItemLabors = new List(); + WorkorderItemParts = new List(); } //Not persisted business properties