【问题标题】:Linq To Sql Skip TakeLinq To Sql 跳过
【发布时间】:2016-03-03 17:19:38
【问题描述】:

我想将每个图标路径保存到一个变量中,从下面的查询中,只有 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

【问题讨论】:

  • 也许您的支持数据没有您正在寻找的信息?如果没有找到,.SingleOrDefault() 将悄悄地返回一个空值。调试时,i 中有什么内容?
  • @David 一个字符串列表,超过 10 项
  • let i = (from im in dc.GetTable() where im.SupplierId == a.Id select im.tblItem.IconPath).ToArray().Add("Test")您是否尝试这样并控制 PathIcon2 值?@Jmocke
  • @AlperTungaArslan 对不起,我没有得到你的建议
  • @Jmocke 实际上我认为 i.count() ==1 因此,如果您在 i 中添加“test”作为字符串并尝试编写代码,您会看到 PathIcon2 值将“test”

标签: c# linq


【解决方案1】:
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 值作为“测试”,请尝试此操作,您的问题不是跳过或采取。只是我列出了一项。我也这么认为。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-21
    • 2011-07-18
    • 2011-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多