我有以下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()
结果中完整的相关实体。
另外,您可以投影整个实体,而不是在匿名类型中投影单个标量属性。