[英]Null exception while working with joining tables in ASP.NET MVC
I have product
, Productsize
and Size
entities.我有product
、 Productsize
和Size
实体。
Productsize
entity contains ProductID
and SizeID
which are foreign key of Product
and Size
entity. Productsize
实体包含ProductID
和SizeID
,它们是Product
和Size
实体的外键。 I am adding size filter in shop page.我在商店页面中添加尺寸过滤器。 List of size ids are coming from view.I am checking if the size ids are there in Productsize
entity and displaying that product only.尺寸 ID 列表来自视图。我正在检查Productsize
实体中是否存在尺寸 ID 并仅显示该产品。 In if condition it is showing null exception在 if 条件下,它显示 null 异常
List<int> sizeIDs = !string.IsNullOrEmpty(SizeIds) ? SizeIds.Split(',').Select(x => int.Parse(x)).ToList() : new List<int>();
var products = db.Products.ToList();
if (sizeIDs.Any())
{
products = products.Where(x=>sizeIDs.Contains(x.ProductSizes.FirstOrDefault()
.SizeID)).ToList();
}
try:尝试:
List<int> sizeIDs = !string.IsNullOrEmpty(SizeIds) ? SizeIds.Split(',').Select(x => int.Parse(x)).ToList() : new List<int>();
var products = db.Products.ToList();
if (sizeIDs.Any())
{
products = products.Where(x=>sizeIDs.Contains(x.ProductSizes.FirstOrDefault()?
.SizeID)).ToList();
}
.FirstOrDefault() ? .FirstOrDefault() ? .SizeID .SizeID
or:或者:
List<int> sizeIDs = !string.IsNullOrEmpty(SizeIds) ? SizeIds.Split(',').Select(x => int.Parse(x)).ToList() : new List<int>();
var products = db.Products.ToList();
if (sizeIDs.Any())
{
products = products.Where(x=>x.ProductSizes.Any() && sizeIDs.Contains(x.ProductSizes.First().SizeID)).ToList();
}
Update: lets try this query:更新:让我们试试这个查询:
List<int> sizeIDs = !string.IsNullOrEmpty(SizeIds) ? SizeIds.Split(',').Select(x => int.Parse(x)).ToList() : new List<int>();
var products = db.Products.ToList();
if (sizeIDs.Any())
{
products = products.Where(x => x.ProductSizes.Any(s=> sizeIDs.Contains(s.SizeID)) ).ToList();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.