簡體   English   中英

LinQ選擇一個列表作為參數的對象

[英]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();

我的目標是將LinQnon-lambda queries一起使用,並group-by joingroup-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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM