[英]LinQ select an object with a list as parameter
我正在使用Linq
查詢從我的Web服務中選擇CRM 2013。
我的最終實體看起來像這樣:
class FOO{
Guid fooId{get;set;}
String fooName{get;set;}
List<Car> fooCars{get;set;}
List<House> fooHouses{get;set;}
}
Car
看起來像這樣:
class Car{
Guid carId{get;set;
String carName{get;set;}
Guid carFooId{get;set;}
}
和House
看起來像:
class House{
Guid houseId{get;set;}
String houseName{get;set;}
Guid houseFooId{get;set;}
}
現在,我的問題如下:
我只想查詢一次crm並檢索其中包含所有列表的FOO
列表。 目前我喜歡這樣:
List<FOO> foes = crm.fooSet
.Where(x => x.new_isActive != null && x.new_isActive.Value = true)
.Select(x => new FOO(){
fooId = x.Id,
fooName = x.Name,
fooCars = crm.carSet.Where(c => c.fooId == x.Id)
.Select(c => new Car(){
carId = c.Id,
carName = c.Name,
carFooId = c.fooId
}).ToList(),
fooHouses = crm.houseSet.Where(h => h.fooId == x.Id)
.Select(h => new House(){
houseId = h.Id,
houseName = h.Name,
houseFooId = h.fooId
}).ToList()
}).ToList();
我的目標是將LinQ
與non-lambda queries
一起使用,並group-by
join
和group-by
檢索我需要的所有數據,但我真的不知道如何實現它,任何提示?
謝謝大家
我認為你要找的是團體加入 :
var query= from f in crm.fooSet
join c in crm.carSet on c.fooId equals f.Id into cars
join h in crm.houseSet on h.fooId equals f.Id into houses
where f.new_isActive != null && f.new_isActive.Value == true
select new FOO{ fooId = f.Id,
fooName = f.Name,
fooCars=cars.Select(c => new Car(){
carId = c.Id,
carName = c.Name,
carFooId = c.fooId
}).ToList(),
fooHouses=houses.Select(h => new House(){
houseId = h.Id,
houseName = h.Name,
houseFooId = h.fooId
}).ToList()
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.