gpt4 book ai didi

c# - 使用 Linq 匹配本地列表中任何对象的 2 属性

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

    public class OrderItem
{
public int OrderID { get; set; }
public int ProductionID { get; set; }
}

public class InventoryItem
{
public int InventoryItemID{ get; set; }
public int OrderID { get; set; }
public int ProductionID { get; set; }
public bool Created { get; set; }
public bool Deleted { get; set; }
}

使用这些示例对象,

我有一个本地的 orderItem 列表,并且想要查询其中 OrderID 和 ProductionID 在我的任何 Order Items 列表中的两个属性都匹配的库存项目

我尝试了下面的 linq 查询,但出现错误

我正在尝试的查询:
    var results = await db.InventoryItems.Where(d =>
listOfOrderItems.Any(o => o.OrderID == d.OrderID && !d.DeleteFlag && d.ProductionId == o.ProductionItemId))
.Select(t => t.InventoryItemID).ToListAsync();

Exception thrown: 'System.NotSupportedException' in EntityFramework.SqlServer.dll



编辑
我被提到这个问题: Using Linq to Sql asynchronously with new async/await

但我的问题不是关于异步等待,而是关于使用我列表中的 .any 匹配的 2 个属性

最佳答案

尝试这个:

var localIdPairs = listOfOrderItems.Select(x => x.OrderId + "-" + x.ProductionItemId).ToList();

var results = await db.InventoryItems
.Where(d => !d.DeleteFlag &&
localIdPairs.Contains(d.OrderId + "-" + d.ProductionItemId))
.Select(t => t.InventoryItemID).ToListAsync();

关于c# - 使用 Linq 匹配本地列表中任何对象的 2 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59548495/

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