将LINQ查询的结果作为复杂模型返回



我有以下LINQ查询,我想返回一个模型与相关的连接等都在适当的地方。

var query = (from wi in context.WorkItems
join mi in context.MaintenanceItems
on new { Id = wi.MaintenanceItemID }
equals new { Id = mi.MaintenanceItemID }
join p in context.Properties 
on new { Id = mi.PropertyID }
equals new { Id = p.PropertyID }
join l in context.Locations 
on new { Id = p.LocationID }
equals new { Id = l.LocationID }
join c in context.Categories 
on new { Id = mi.CategoryID }
equals new { Id = c.CategoryID }
join sc in context.SubCategories 
on new { Id = mi.SubCategoryID }
equals new { Id = sc.SubCategoryID }
join pl in context.PickLists 
on new { Id = wi.PriorityFlag, V = "Priority" }
equals new { Id = pl.ValueKey, V = pl.ValueType }
where wi.AssignedTo1 == username           
orderby wi.PriorityFlag descending, wi.PriorityIndex, wi.WorkItemID 
select new {
wi.WorkItemID, 
wi.PriorityFlag,
wi.PriorityIndex,
wi.CompletionDateTime,
l.LocationName,
p.PropertyFullName ,
wi.AssignedTo1,
wi.AssignedTo2,
wi.AssignedTo3,
c.CategoryName,
sc.SubCategoryName,
PriorityDesc = pl.ValueTitle 
});

我的模型由一个WorkItem实体组成,查询可以返回多个WorkItem实体,然后使用相关实体填充所有外键等的描述性值。

显然使用查询,我已经创建了一个匿名类型,但我不确定如何把它变成完全充实的已知类型,我需要吗?

我已经创建了一个匿名类型,但我不确定如何把它变成我需要的完全充实的已知类型?

不是将选定的元素投影到一个新类型中,而是使用Eager Loading来Include()结果中完整的相关实体。

另外,您可以投影整个实体,而不是在匿名类型中投影单个标量属性。

最新更新