gpt4 book ai didi

c# - 使用 LINQ GroupBy() 从数据库中获取强类型的唯一项列表

转载 作者:太空宇宙 更新时间:2023-11-03 10:33:14 25 4
gpt4 key购买 nike

如何使用 LINQ 获取唯一项目的列表,最好使用 GroupBy()

这将是我的尝试:

public IEnumerable<Owner> GetAll(int userId)
{
return _dbContext.Owners.Where(x => x.UserId == userId)
.GroupBy(p => p.Text).Select(x => new Owner()).ToList();
}

但这给了我这个运行时错误:

The entity or complex type 'CentraVent.Data.Owner' cannot be constructed in a LINQ to Entities query.

我不得不说这是我的许多尝试之一。我只能找到返回匿名类型的示例。如何为强类型对象完成此操作?

EDIT 具有唯一的所有者列表,我的意思是它基于 Text 列。因此 Text 列的记录不应具有相同的值。我得到哪个副本并不重要。

所有者表有以下字段:

  • 身份证
  • 正文
  • 颜色
  • 用户名

最佳答案

如果对于每个唯一的 Text 值,您想要哪个 Owner 并不重要,那么您可以只获取第一个

public IEnumerable<Owner> GetAll(int userId)
{
return _dbContext.Owners.Where(x => x.UserId == userId)
.GroupBy(p => p.Text).Select(x => x.FirstOrDefault()).ToList();
}

关于c# - 使用 LINQ GroupBy() 从数据库中获取强类型的唯一项列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28995605/

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