筛选基于二维数组的 LINQ 到实体查询

本文关键字:实体 查询 LINQ 二维数组 筛选 | 更新日期: 2023-09-27 17:56:25

这是一个Linq2entities的挑战...

我有一个实体(ID,类别ID,值)和一个带有类别ID/值对的二维整数数组。我需要按每对过滤所有实体,如下所示:

from e in Entity
where (e.CategoryID and e.Value) in array
select e;

所以基本上是一个"两个链接字段"过滤器。

一个肮脏的解决方案是连接和比较,例如:

concatarray = some function to concat CategoryID + "/" + Value; 
from e in Entity
where e.CategoryID + "/" + e.Value in concatarray
select e;

但由于性能问题,我不想使用它。

知道吗?

多谢!

筛选基于二维数组的 LINQ 到实体查询

首先,我会将您的数组转换为具有特定属性的对象列表。为此使用 2D 数组不是好主意。

然后,查询可能无法转换为 EF 中的 SQL。

from e in Entity
where array.Where(a=>a.CategoryID == e.CategoryID && a.Value == e.Value).Any()
select e