gpt4 book ai didi

c# - 包含项目对的匹配项

转载 作者:行者123 更新时间:2023-11-30 12:24:39 24 4
gpt4 key购买 nike

我有一个如下形式的映射表:

Id  ReferenceId  ReferenceType LinkId

要检索一组组合,我可以分别运行每个查询:

var pairs = new List<Pair>
{
Pair.Create(1000, "Car"),
Pair.Create(2000, "Truck"),
};
var maps = new List<Mapping>();
foreach (var pair in pairs)
{
maps.AddRange(context.Mappings.Where(x => x.ReferenceId = pair.Id && x.ReferenceType == pair.Type).ToList());
}

但是,我想将这些组合成一个语句以减少我对数据库的访问。是否有某种形式的 Contains 语句可以处理成对的对象?或者是否可以在循环中将 OR 子句附加到 IQueryable 上?还有其他解决方案吗?

最佳答案

不确定它是否适用于您的 LINQ 提供程序,但您可以尝试使用匿名类型加入:

var mapQuery = from p in pairs 
join m in context.Mappings
on new { p.Id, p.Type } equals new { m.ReferenceId, m.ReferenceType}
select m;
List<Mapping> maps = mapQuery.ToList();

关于c# - 包含项目对的匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33297957/

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