使用实体框架从数据库中选择有条件的不同记录

时间:2019-04-25 01:55:00

标签: c# asp.net-mvc entity-framework

我有100条记录的表,在某些记录中,第一列和最后一列是相同的。在第一列和最后一列的基础上,我需要不同的记录。

例如,如果5行中的第一列和最后一列相同,则使其与众不同,并仅从数据库返回一条记录。我希望你能理解我的问题。

该表如下所示:

FirstField    2ndField  Last Field
----------------------------------
a              dd         10
a              dd         20
b              ff         50
a              gg         10
a              ng         10

DB.Information.Distinct().ToList();

预期输出:

a dd 10
a dd 20
b ff 50

2 个答案:

答案 0 :(得分:0)

尝试如下:

var distinctRecords = DB.Information.GroupBy(i => new {i.FirstField, i.LastField})
              .Select(g => g.FirstOrDefault()).ToList();

答案 1 :(得分:0)

您还可以使用Distinct()

区分多个列
var informations = DB.Information.Select(x=> new { x.FirstField , x.LastField }).Distinct().ToList();

在这里,首先我们选择要区分的列作为anonymous-type

像这样,您可以在linq中使用多列而无需GroupBy来区分。