【发布时间】:2014-02-04 16:57:59
【问题描述】:
我有一个父子模型,我想按两个实体的 SortOrder 列进行排序。我有查询工作,但它似乎过于冗长,我想知道是否有更简单的解决方案来解决这个问题。
我最初将结果加载到匿名类型中(因为您不能将复杂类型直接加载到实体框架实体中),然后再次查询该类型以加载到实体中。我知道我可以通过实现 DTO 来简化这一点,但我对这个用例的更清洁的解决方案感兴趣。
型号
查询
public List<Group> GetStaticMeasures(int businessUnitID)
{
var groups = (from g in ctx.Groups.Where(w => w.BusinessUnitID.Equals(businessUnitID)).OrderBy(o => o.SortOrder)
select new
{
ID = g.ID,
BusinessUnitID = g.BusinessUnitID,
Name = g.Name,
SortOrder = g.SortOrder,
Datapoints = (from d in ctx.Datapoints where g.ID.Equals(d.StaticGroupID) orderby d.SortOrder select d).ToList()
}).ToList();
var results = from g in groups
select new Group
{
ID = g.ID,
BusinessUnitID = g.BusinessUnitID,
Name = g.Name,
SortOrder = g.SortOrder,
Datapoints = g.Datapoints
};
return results.ToList();
}
【问题讨论】:
标签: c# linq entity-framework linq-to-entities hierarchy