gpt4 book ai didi

.net - Linq 在特定领域不同

转载 作者:行者123 更新时间:2023-12-04 02:57:06 25 4
gpt4 key购买 nike

鉴于:

var s = (from p in operatorList                       
select p.ID, p.Name,p.Phone)

如何仅根据 ID 返回 Distinct 记录?

最佳答案

你可以写一个 IEqualityComparer 比较 ID值并将其传递到 overloaded Queryable.Distinct method ,但由于这是 LINQ to SQL,因此数据库不支持它。您必须添加对 AsEnumerable method 的调用。以使其正常工作,但是对于大量数据不建议这样做,因为您会将数据带到客户端。如果您决定走那条路线,您最终会得到类似于以下内容的查询:

var query = dc.Operators.AsEnumerable().Distinct(new OperatorEqualityComparer());

使数据库完成工作的另一个选项是按 ID 分组。并取每组中的第一项:
var query = from p in dc.Operators
group p by p.ID into groups
select groups.First();

关于.net - Linq 在特定领域不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5984794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com