簡體   English   中英

Linq To SQL跳過

[英]Linq To Sql Skip Take

我想將每個圖標路徑保存到一個變量中,從下面的查詢中,只有PathIcon1具有value。 剩余路徑圖標為空

詢問

using (CarteringServiceClientDataContext dc = new CarteringServiceClientDataContext())
            {


                result = (from a in dc.GetTable<tblSupplier>()
                          join b in dc.GetTable<tblCity>()
                          on a.CityId equals b.Id
                          join c in dc.GetTable<tblZone>()
                          on b.ZoneId equals c.Id

                          let r = (from re in dc.GetTable<tblClientReview>()
                                   where re.SupplierId == a.Id
                                   select re.note).Average()

                          let i = (from im in dc.GetTable<tblSupplierItem>()
                                   where im.SupplierId == a.Id
                                   select im.tblItem.IconPath).ToArray()

                          select new SearchResult
                          {
                              CompanyId = a.Id,
                              CompanyName = a.Company,
                              Localisation = a.Locality,
                              City = b.Name,
                              Zone = c.Name,
                              Rating = r.ToString(),
                              PathIcon1 = i.Take(1).SingleOrDefault(),
                              PathIcon2 = i.Skip(1).Take(1).SingleOrDefault(),
                              PathIcon3 = i.Skip(2).Take(1).SingleOrDefault(),
                              PathIcon4 = i.Skip(3).Take(1).SingleOrDefault(),
                              PathIcon5 = i.Skip(4).Take(1).SingleOrDefault()
                          }).ToList<SearchResult>();


            }

來自PathIcon1的一部分,其余的PathIcon為null

using (CarteringServiceClientDataContext dc = new CarteringServiceClientDataContext())
                {  
                    result = (from a in dc.GetTable<tblSupplier>()
                              join b in dc.GetTable<tblCity>()
                              on a.CityId equals b.Id
                              join c in dc.GetTable<tblZone>()
                              on b.ZoneId equals c.Id

                              let r = (from re in dc.GetTable<tblClientReview>()
                                       where re.SupplierId == a.Id
                                       select re.note).Average()

                              let i = (from im in dc.GetTable<tblSupplierItem>()
                                       where im.SupplierId == a.Id
                                       select im.tblItem.IconPath).ToArray().Add("test")

                              select new SearchResult
                              {
                                  CompanyId = a.Id,
                                  CompanyName = a.Company,
                                  Localisation = a.Locality,
                                  City = b.Name,
                                  Zone = c.Name,
                                  Rating = r.ToString(),
                                  PathIcon1 = i.Take(1).SingleOrDefault(),
                                  PathIcon2 = i.Skip(1).Take(1).SingleOrDefault(),
                                  PathIcon3 = i.Skip(2).Take(1).SingleOrDefault(),
                                  PathIcon4 = i.Skip(3).Take(1).SingleOrDefault(),
                                  PathIcon5 = i.Skip(4).Take(1).SingleOrDefault()
                              }).ToList<SearchResult>();
          }

如果獲得PathIcon2值作為“測試”,請嘗試執行此操作,以解決問題。 我只列出一個項目。 阿德,我是這樣認為的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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