2014-10-16 34 views
0

我有下面的類:EF LINQ的加入陣列表

public class Coordinate 
{ 
    public string lat { get; set; } 
    public string lng { get; set; } 
} 

我創建這些對象的數組。

我當時想,以確定是否在我的陣列中的任何物體在表配襯一行(lat和長):

location = db.Locations.Where(u => centers.Any(s => u.Lat.Equals(s.lat)) && 
            centers.Any(s => u.Lng.Equals(s.lng))) 
         .ToArray(); 

但我得到這個異常:

Only primitive types or enumeration types are supported in this context. 

回答

0

您正在使用查詢中的centers類。這不是像System.String,System.Int32System.Boolean這樣的原始類型。您將必須將centers類中的latlng屬性收集到陣列或其他IEnumberable<string>實現中。

喜歡的東西:

var centerLatitudes=(from center in centers 
        select center.lat).toList(); 
var centerLongitudes=(from center in centers 
         select center.lng).toList(); 

var locations = 
    db.Locations.Where(loc => centerLatitudes.Any(clt => loc.Lat.Equals(clt.lat)) && 
           centerLongitudes.Any(clt => loc.Lng.Equals(clt.lng))) 
       .ToArray(); 
+0

Dabblernl..Thanks – boblautenbach 2014-10-16 22:07:03

+0

Dabblernl ...我的中心對象已經協調對象的數組這樣,我只是做的:var COOR = centers.ToList(),使其可枚舉? – boblautenbach 2014-10-16 22:10:42

+0

@boblautenbach數組也是'IEnumerable '的一個實現。我寫的代碼不工作? – Dabblernl 2014-10-17 04:39:26