2015-10-16 45 views
0

例子中的物體如何查找與Linq/SQL中的組合列表相匹配的所有行?

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」的恆定值。只有原始類型或枚舉類型在此上下文中受支持。

有沒有另外一種方法來做到這一點?

重要的部分是組合數量未知。

+1

您的'Comb'對象看起來就像'Car'對象。如果你創建一個'Car'對象的列表呢? – juharr

+0

嗨Juharr,偉大的提示,我試了一下。我很害怕它給了我LinqToSql相同的錯誤:*無法創建一個'Example.Car'類型的常量值。在這種情況下,只支持原始類型或枚舉類型。* –

回答

0
var result = Db.Cars.Where(c=>combinations.Any(comb=>comb.Doors==c.Doors && comb.Wheels==c.Wheels)); 
+0

這會引發相同的異常。 –

相關問題