【问题标题】:linq to sql order bylinq to sql order by
【发布时间】:2013-04-16 23:41:25
【问题描述】:

如何按嵌套表列排序结果,如

FROM a IN Repository
FROM b IN a.Users
ORDERBY b.Name
SELECT a

但它不起作用,我想在 'a' 表中选择所有内容,但它是按关系表 'b' 中的名称列排序的,我该怎么做? 谢谢。

UPD:非常抱歉。我的错是我的粗心大意。可能,我没有注意到从结果中重新排序的元素列表的后处理。谢谢大家!

【问题讨论】:

  • 这真的是 linq-to-sql 吗?在这种情况下,数据上下文在哪里?还是 linq-to-objects?
  • 这种情况下是什么电路问题?

标签: linq-to-sql nested sql-order-by


【解决方案1】:

不确定这是否是最好的方法,但我会这样做

var query = from ab in
              (from a in Repository
              select new
              {
                A = a,
                B = a.Users.OrderBy(u => u.Name).FirstOrDefault()
              })
            orderby ab.B.Name
            select ab.A;

【讨论】:

    【解决方案2】:

    表之间有关系吗?你有导航属性吗?在这种情况下,请使用:

    from a in repository.a
    orderby a.Users.Name
    select a;
    

    【讨论】:

    • 哈哈,我不会很容易的。您不能使用来自 a 的 b 表中的列,因为这是集合...而且我没有导航属性
    【解决方案3】:

    您还可以将属性添加到部分类,然后改用其他属性。

    public partial class Repository
    {
        public IOrderedEnumerable<User> OrderedUser
        {
            get
            {
                return this._User.OrderByDescending(u => u.Name);
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-05-21
      • 1970-01-01
      • 2016-05-26
      • 2011-04-18
      • 1970-01-01
      • 1970-01-01
      • 2012-04-03
      • 1970-01-01
      • 2010-12-31
      相关资源
      最近更新 更多