使用两列从DB中提取不同的记录

时间:2017-10-12 16:50:17

标签: c# .net linq

我需要从数据库中提取记录,让我们假设这个结构

ID,名称,类型,密钥,EXPDATE,IsActive

现在进行了一些重组,表格可能会根据ID和类型保存重复记录。我希望能够使用linq从数据库中提取记录,但只有一个具有相同ID /类型的记录。

EX:

1,Fred,1,NewGuid,12/15 / 201,1

1,Fred,1,NewGuid,10/01 / 2017,1

2,Goerge,2,NewGuid,02/01 / 201,1

我希望结果集为Fred和One for Goerge的1条记录。实际上哪一个Fred记录只返回只有一个记录并不重要。

我尝试过使用DISTINCT,但是返回IDistinct而不是整个记录。有没有办法用linq做到这一点?

这是我尝试过的:

_table.AllReadOnly().Where(i => i.ID == id && i.IsActive).GroupBy(i => i.ID, i.Type).Select(i => i.FirstOrDefault()).ToList();
_table.AllReadOnly().Where(i => i.ID == id && i.IsActive).Distinct().ToList();

我知道.Distinct()之类的东西不会做任何事情。我试图找出如何做EqualityComparer,但我不确定这是否是我应该去的路线。

1 个答案:

答案 0 :(得分:0)

您可以使用这两列的DELETE https://graph.microsoft.com/v1.0/groups/GROUP_ID/rejectedSenders/$ref?$id=https://graph.microsoft.com/v1.0/users/USER_ID ,然后从每个组中选择第一个元素。例如:

GroupBy

结果将是一个包含输入列表的第一个和第三个元素的列表。