LINQ to entity,对返回值的子集进行排序

时间:2017-11-08 17:47:39

标签: linq entity-framework-core

        var myView = await _context.foo
            .Include(p => p.subFoos)
            .SingleOrDefaultAsync(m => m.FooID == id);

此代码返回数据库中的一行以及集合subFoos中保存的链接子行,我想要做的是订购集合而不是按表顺序显示它们。我有一个字段OrderBy,但我无法弄清楚如何使用它。

        var myView = await _context.foo
            .Include(p => p.subFoos)
                .OrderBy(x => x.OrderBy)
            .SingleOrDefaultAsync(m => m.FooID == id);

这是由顶级行排序,而不是集合。如何将OrderBy应用于集合。 感谢

1 个答案:

答案 0 :(得分:0)

无法获得上述任何功能,因此只需使用

检索数据
var myView  = await _context.foo
.Include(p => p.subFoos)
.SingleOrDefaultAsync(m => m.FooID == id);

然后通过将myView.subFoos转换为List

来对其进行排序
myView.subFoos = myView.subFoos.ToList().OrderBy(x => x.OrderBy).ToList();

只有一个数据库调用,效果很好。