我尝试加入两个表产品和 ProductImages ,并将结果存储到另一个类 ProductDisplay 中,该类将存储多个产品 ID ,名称,首先是 ImageId , ImageName 。
如果 ProductImages 表中没有图片, ProductDisplay 将在列表中包含 NoId 和 NoProductImage 。
但是这个Linq抛出异常
var products = (from p in db.Products
select new ProductDisplay
{
ProductId = p.Id,
Name = p.Name,
Image = (from ppi in db.ProductImages
where ppi.ProductId == p.Id
select ppi.Image == null ? "noproductimage.jpg" : ppi.Image).ToString(),
ProductImageId = (from ppi in db.ProductImages
where ppi.ProductId == p.Id
select ppi.Id.ToString() == null ? "NoId" : ppi.Id.ToString()).ToString()
}).ToList();
我认为以下代码抛出异常
select ppi.Id.ToString() == null ? "NoId" : ppi.Id.ToString()).ToString()
请帮助...
答案 0 :(得分:0)
你有实体框架标记,所以为什么不是你只是:
var myList = db.Products.Include("ProductImages").ToList();
然后使用映射技术从myList中选择。每个产品是否有多个图像?
答案 1 :(得分:0)
这是一个答案,但无法添加“noproductimage.jpg”和“NoId”。但我的代码将分别用于NULL和0 “noproductimage.jpg”和“NoId”。
var product = from p in db.Products
select new
{
ProductId = p.Id,
Name = p.Name,
Image = (from ppi in db.ProductImages
where ppi.ProductId == p.Id
select ppi.Image).FirstOrDefault(),
ProductImageId = (from ppi in db.ProductImages
where ppi.ProductId == p.Id
select ppi.Id).FirstOrDefault()
};