【发布时间】: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”