首页 > 解决方案 > 如何在实体框架中选择不同的行

问题描述

我在 sql server 中使用以下命令来获取数据:

Select distinct ConstituentGroupNameId,UserId,CreatedTime  from dbo.ConstituentRecords

但是我无法通过实体框架来实现它。我也想获得唯一的 ConstituentGroupNameId 和其他字段。

标签: asp.netasp.net-mvcasp.net-mvc-3entity-framework-6entity

解决方案


您可以简单地groupby在 Linq 查询中使用。它可以达到与 T-SQL 的distinct操作相同的结果。


首先要区分的组字段,您可以获取您创建的组。然后选择组中的第一个项目。

最后,您将获得您过滤的不同行。

拉姆达表达式:

var boo = ConstituentRecords
.GroupBy(o => new { o.ConstituentGroupNameId, o.UserId, o.CreatedTime } )
.Select(g=>g.First())
.ToList();

或者

查询表达式:

var boo = (from v in ConstituentRecords
           group v by new { v.ConstituentGroupNameId, v.UserId, v.CreatedTime } into g
           select g.First()).ToList();

推荐阅读