전달되는 메소드가 vehicleID
입니다. 해당 차량을 포함하는 SalesChannels
을 모두 가져와야합니다. SalesChannels
에는 VehicleID
이라는 속성이있는 SalesChannelVehicle
의 IEnumerable이 있습니다.Linq - 콜렉션의 항목에 문자열과 일치하는 속성이있는 경우 부모 :
나는 이걸 시도했지만, SalesChannels
을 가져 왔고, 내 Vehicle
이 있다는 것을 알았습니다!
var queryable = Session.Linq<SalesChannel>();
queryable.Where(y => y.SalesChannelVehicle.Any(z => z.VehicleId == vehicleId));
아무도 도와 줄 수 있습니까? 나는 NHibernate를 사용하고 있는데,이 문제에 많은 차이가 있다는 것을 의문의 여지가있다.
다른 SalesChannelVehicle 값을 갖도록 'SalesChannel' 인스턴스를 수정하려고합니다. – SLaks
사실, IQueryable 공급자 인 inst를 사용합니다. "IEnumerable Linq"라는 말은 쿼리가 어떻게 구조화되어야하는지에 큰 차이를 만들 수 있습니다. 그러나, 나는 당신의 질문에 그것의 얼굴에 아무 문제도 찾아 낼 수 없다; 하위 쿼리를 사용하여 Exists 절로 변환해야합니다. 하위 쿼리는 아마도 가장 뛰어난 솔루션은 아니지만 적어도 정확한 결과를 반환해야합니다. – KeithS
'nhprof'를 사용하거나 데이터베이스를 직접적으로 프로파일 링하여 "NHibernate to LINQ"번역기가이 특정 쿼리에 대해 올바르게 작동하는지 확인해 보셨습니까? – Marc