【发布时间】:2021-08-24 07:39:39
【问题描述】:
给定实体
public class Product
{
public int ProductId { get; set; }
public string ProductName { get; set; }
public ICollection<Category> Categories { get; set; }
}
public class Category
{
public int CategoryId { get; set; }
public string CategoryName { get; set; }
public ICollection<Product> Products { get; set; }
}
我想查询 Products 表以检索具有以逗号分隔列表形式给出的任何类别的产品。
因此,例如,我想获得类别为“电子产品”和/或“厨房设备”的产品
如果它不是一个集合,我会这样做:例如
Products.Where(p => "Oven,Kettle".Contains(p.ProductName));
但这显然行不通:
Products.Where(p => "Electronics,Kitchen Equipment".Contains(p.Categories.CategoryName));
也试过了:
Products.Where(p => "Electronics,Kitchen Equipment".Any(x => p.Categories.Any(pcat => pcat.CategoryName == x.ToString()))).Take(100);
【问题讨论】:
标签: c# linq entity-framework-core