Linq To Sql Skip Take

本文关键字:Take Skip Sql To Linq | 更新日期: 2023-09-27 18:37:02

我想将每个图标路径保存到一个变量中,从下面的查询中,只有 PathIcon1 有值。剩余路径图标为空

查询

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 为空

Linq To Sql Skip Take

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 值作为"测试",请尝试此操作,您的问题不是跳过或采取。只是我列表包括一个项目。阿德恩 我想是的。