如何让我的orderby使用匿名类型工作?

时间:2008-10-31 18:59:59

标签: linq

我在订单中放入了什么?我想按名字订购。我在明确之后移动了orderby因为我读到它需要最后完成。

   var result = (from r in db.RecordDocs
                  where r.RecordID == recordID
                  select new
                             {
                                 DocTypeID = r.Document.DocType.DocTypeID,
                                 Name = r.Document.DocType.Name,
                                 Number = r.Document.DocType.Number
                             }
                 ).Distinct().OrderBy( );

2 个答案:

答案 0 :(得分:13)

只做

.OrderBy(doc => doc.Name)

答案 1 :(得分:3)

另一个选择,如果你真的更喜欢查询表达式语法,那就是将查询结构链接到多个语句:

var query = from r in db.RecordDocs
    where r.RecordID == recordID
    select new
    {
        DocTypeID = r.Document.DocType.DocTypeID,
        Name = r.Document.DocType.Name,
        Number = r.Document.DocType.Number
    };

query = query.Disctinct();
query = from doc in query orderby doc.Name select doc;

由于延迟了所有这些方法,因此这将导致完全相同的执行性能。