Вы можете использовать Include()
и ThenInclude()
до загрузить связанные данные .
Например, если у меня есть такие модели, как
public class Product
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public ICollection<ProductCategory> ProductCategories { get; set; } = new List<ProductCategory>();
}
public class Category
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public ICollection<ProductCategory> ProductCategories { get; set; } = new List<ProductCategory>();
}
public class ProductCategory
{
[Key]
public int ProductId { get; set; }
public Product Product { get; set; }
[Key]
public int CategoryId { get; set; }
public Category Category { get; set; }
}
Доступ к списку категорий по продукту
//select specific product whose Id is 1
var product = await _context.Products.Include(p => p.ProductCategories)
.ThenInclude(pc => pc.Category)
.FirstOrDefaultAsync(p => p.Id == 1);
var categories = product.ProductCategories.Select(pc => pc.Category).ToList();