简体   繁体   English

在 ASP.NET MVC 中使用连接表时出现 Null 异常

[英]Null exception while working with joining tables in ASP.NET MVC

I have product , Productsize and Size entities.我有productProductsizeSize实体。

Productsize entity contains ProductID and SizeID which are foreign key of Product and Size entity. Productsize实体包含ProductIDSizeID ,它们是ProductSize实体的外键。 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM