我有一个包含多个包的横幅。每个包都有多个文件。
我有以下查询:
List<BannerModel> models = context.Banners
.Select(x => x.Packs
.SelectMany(p => p.Files, (p, f) => new {
Id = p.Id,
Flag = p.Flag,
File = new { Id = f.Id, Flag = f.Flag, Key = f.Key, Mime = f.Mime }
})
.Where(a => a.File.Flag == "Img_200")
.Select(a => new BannerModel { PackId = a.Id, ImageKey = a.File.Key })
).ToList();
1)我收到“ToList()”的错误。 无法隐式转换类型'System.Collections.Generic.List&gt;'到'System.Collections.Generic.List'
2)然后我删除了ToList并添加了“var models = ...”
我知道有10条记录,其中5条符合标准:
.Where(a => a.File.Flag == "Img_200")
奇怪的是,我得到10个项目,5个有数据,5个没有数据。
我应该只获得5个项目的列表。符合标准的那个。
有人可以帮我解决这个问题吗?
谢谢你, 米格尔
答案 0 :(得分:2)
应该是:
List<BannerModel> models = context.Banners
.SelectMany(x => x.Packs
.SelectMany(p => p.Files, (p, f) => new {
Id = p.Id,
Flag = p.Flag,
File = new { Id = f.Id, Flag = f.Flag, Key = f.Key, Mime = f.Mime }
})
.Where(a => a.File.Flag == "Img_200")
.Select(a => new BannerModel { PackId = a.Id, ImageKey = a.File.Key })
).ToList();