gpt4 book ai didi

Linq To 实体比较值与 List

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

我正在使用 Entity Framework 5.0 ,并且我在 LINQ 查询方面遇到了问题。我有以下方法接受一个整数值,然后将其传递到查询中。这工作正常。

public IList<tblcoursebooking> GetStandardReport(int AttendanceID)
{
return _UoW.tblcoursebookingRepo.All
.Where(cb => cb.Attended.Equals(AttendanceID)
.ToList();

}

但是,我需要更改方法以使其接受 整数列表 ,然后拉出所有记录,其中 已参加 等于整数列表中的任何一个。像这样的东西
public IList<tblcoursebooking> GetStandardReport(List<int> AttendanceIDs)
{
return _UoW.tblcoursebookingRepo.All
.Where(cb => cb.Attended.Equals == any AttendanceIDs
.ToList();
}

我想尝试使用 包含 任意 但是,LINQ 关键字为 已参加 是单个值,而不是集合,点后唯一可用的属性是

相比于,
等于,
获取哈希码,
获取类型,
获取类型代码,
ToString


有人可以帮忙吗?

谢谢你的时间。

最佳答案

使用 Contains函数,它将根据给定的列表匹配每个 ID:

return _UoW.tblcoursebookingRepo.All
.Where(cb => AttendanceIDs.Contains(cb.Attended))
.ToList();

一般来说,请记住,Where 子句只不过是带有嵌套 if 语句的花哨的 foreach(不过,这是一个非常花哨的语句)。它需要一个计算结果为 bool 值的表达式。如果您只需要检查一项,而不使用 LinQ,您会很快想出类似以下内容:
if(AttendanceIDs.Contains(myItem.Attended))

您可以以完全相同的方式处理 LinQ 的 Where 子句,如上所示 :) 如果您感到困惑,请想一想如何检查一次,因为 LinQ 会为您完成迭代部分。

更新

正如费萨尔的回答中提到的, WhereIn提供了类似的功能。还没用过,不过好像是更简洁的方法。

不过,我并没有改变我的答案,因为我觉得指出如何在 Where 中使用 bool 计算更为重要。条款,这也应该有助于解决您将来可能遇到的所有类似问题 WhereIn将不相关。

但是,您也可以使用 WhereIn在这种特殊情况下:-)

关于Linq To 实体比较值与 List<int>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15829031/

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