C# 如何在Linq/SQL中找到与组合列表匹配的所有行?

C# 如何在Linq/SQL中找到与组合列表匹配的所有行?,c#,sql,linq,C#,Sql,Linq,示例对象 public class Car { public int Doors { get; set; } public int Wheels { get; set; } } 要查找与列表匹配的所有汽车,请执行以下操作: var list = new[] { 3, 4 }; var result = Db.Cars.Where( c => list.Contains(c.Doors) ); 如何找到所有匹配车门和车轮组合之一的汽车?我试过: var combina

示例对象

public class Car
{
     public int Doors { get; set; }
     public int Wheels { get; set; }
}
要查找与列表匹配的所有汽车,请执行以下操作:

var list = new[] { 3, 4 };
var result = Db.Cars.Where( c => list.Contains(c.Doors) );
如何找到所有匹配车门和车轮组合之一的汽车?我试过:

var combinations = new[] { new Comb { Doors = 1, Wheels = 2 }, new Comb { doors = 5, wheels = 4 } };
var result = Db.Cars.Where( c => combinations.Contains(new Comb { Doors = c.Doors, Wheels = c.Wheels }) ) );
但这当然不起作用,产生以下错误:

无法创建“Example.Comb”类型的常量值。在此上下文中仅支持基元类型或枚举类型

还有别的办法吗


重要的是组合的数量未知。

梳子对象看起来就像汽车对象。如果你创建一个汽车物体列表呢?嗨,朱哈,很棒的提示,我试过了。我很惊讶它给了我与LinqToSql相同的错误:无法创建“Example.Car”类型的常量值。此上下文中仅支持基元类型或枚举类型。这将引发相同的异常。
var result = Db.Cars.Where(c=>combinations.Any(comb=>comb.Doors==c.Doors && comb.Wheels==c.Wheels));