按特定列排序

时间:2015-11-24 15:44:41

标签: entity-framework linq

我正在尝试获取不同的记录

var records = (from entry in db.Table1
               select new
               {
                   RowID = entry.RowID,
                   FirstName = entry.First,
                   LastName = entry.Last,
                   Restricted = (entry.Prohibited == null || entry.Prohibited == "False") ? "Restricted" : "Not Restricted"
               }).ToList();

这里RowID是主键。我希望得到独特的名字和姓氏。

例如:

 RowID  First  Last Prohibited ...
  1     A       B     False
  2     A       B     False
  3     A       B     False
  4     Z       Y     True
  5     Z       Y     True

我想要的是:

 RowID  First   Last  Prohibited
 1      A       B     False
 4      Z       Y     True

我怎样才能得到它?

2 个答案:

答案 0 :(得分:0)

您可以这样做:

var records = 
    (from entry in db.Table1
        select new {
            FirstName = entry.First,
            LastName = entry.Last,
            Restricted = (entry.Prohibited == null || entry.Prohibited == "False") ? "Restricted" : "Not Restricted"
        }).Distinct();

如果您还想要rowID,可以阅读select-distinct-using-linq

答案 1 :(得分:0)

{{1}}

通过组合名字和姓氏对项目进行分组,然后只取每组中的第一项,您可以有效地确保根据这些值获得不同的项目。