使用输入数组搜索数据库列的 LINQ 查询,其中它有多个用逗号分隔值的项目

问题描述 投票:0回答:0

在我的数据库中,我有一个包含带有区域 ID 的国家/地区列表的表。一个国家可以属于多个地区ID。在这种情况下,区域 ID 作为字符串以逗号分隔的值形式放置。这是一个例子:

现在我需要编写一个 LINQ 查询来根据输入过滤数据。例如,输入可以是 3 或‘3’或‘6’、‘7’、‘3’。对于输入 3 或“3”,我应该得到所有 14 行,如上所示。为了获取包含搜索字符串的行,我编写了以下 LINQ 查询:

int result;
    
var arrRegionId = input.Split(',');
    
var countries = countries.WhereIf(arrRegionId.Length > 0,
        x => arrRegionId.Select(item => int.TryParse(item.Trim('\''), out result) ? result.ToString() : "0")
            .Contains(x.RegionId) || arrRegionId.Contains(x.RegionId));

但是通过这个查询,我只能得到除了第一条记录(阿富汗)之外的 13 条记录。因为阿富汗有多个Region ID。

现在我想提出一些建议,关于如何改进 LINQ 查询,以便我可以获得具有多个区域 ID 的记录。

entity-framework linq
© www.soinside.com 2019 - 2024. All rights reserved.