• 1405/06/31

کوئری دریافت محصولات بر اساس slug :

سلام استاد وقتتون بخیر
برای این کوئری چون فقط محصولات رو بر میگردونیم نیازی به  include کردن نداریم در نتیجه کوئری مون رو میتونیم همون به شکل ساده بنویسیم و روی هر سطح دسته بندی کلیک کنیم Product های همون سطح  و زیر مجموعه هاش رو بر میگردونه :
 

public async Task<IEnumerable<Product>> GetProductsBySlug(string slug)
{
    return await  _context.Products
        .Where(p=>p.Category.Slug == slug 
        || p.Category.Parent.Slug == slug 
        || p.Category.Parent.Parent.Slug == slug)        
        .ToListAsync();
}

فکر کنم این برای ما کافی باشه 

 ولی برای بیشتر شدن سرعت پیدا شدن محصولات برای وقتی که محصولاتمون بیشتر شد میتونم روی اسلاگ index گذاری کنیم و چون اسلاگ ها یونیک هستند میتونیم این خطو  تو کانفیگوریشن اضافه کنیم:
 

 builder.HasIndex(x=>x.Slug).IsUnique();