2012-12-30 2 views
0

저는 다른 엔티티에서도 연료 유형을 보유하고있는 자동차 모델 엔티티를 보유하고 있습니다. 그들은 다 - 대 - 다 관계가 있습니다.LINQ를 사용하여 공통 엔티티를 찾으십시오.

코드 :

public class CarModel 
{ 
    public int Id { get; set; } 
    public string Model { get; set; } 

    public ICollection<CarFuel> Fuel { get; set; } 
} 

public class CarFuel 
{ 
    public int Id { get; set; } 
    public string FuelType { get; set; } 

    public ICollection<CarModel> Model { get; set; } 
} 

int model = 2002; // this is coming from a selectbox 

var models = (from m in db.CarModels where m.Id == model select m).ToList(); 
var fuels = (from e in db.CarFuels select e).ToList(); 
var result = fuels.Where(p => models.Any(q => q.Fuel == p)).ToList(); // this doesn't work because it is looking for primitive types rather than entitites. 

그래서, 난 단지 결과 집합 spesific 모델과의 관계를 가지고있는 유형을 발표 할 예정이다 CarFuel에 대한 쿼리를 만들고 싶어. 그래서 나는 생성 된 CarModel 결과 세트와 관계가없는 CarFuel을 표시하고 싶지 않습니다.

답변

2
var fuels = db.CarFuels.Where(cf => cf.Model.Any(m => m.Id == model)) 
+1

감사합니다. 그것은 작동합니다! – MrGorki

관련 문제