بسیار ممنون
جدول product :
public class Product
{
public int Id { get; set;
public string Title { get; set; }
public string Body { get; set; }
public int UserId { get; set; }
public virtual User User { get; set; }
public virtual ICollection<Image> Images{ get; set; } = new HashSet<Image>();
public virtual ICollection<ProductComment> ProductComments { get; set; } = new HashSet<ProductComment>();
public virtual ICollection<ProductGroup> ProductGroups { get; set; } = new HashSet<ProductGroup>();
}
جدول گروه ها :
public class Group
{
public int Id { get; set; }
public string Name { get; set; }
public int? ParentId { get; set; }
public virtual Group Parent { get; set; }
public virtual ICollection<Group> Children { get; set; } = new HashSet<Group>();
public virtual ICollection<ProductGroup> ProductGroups { get; set; } = new HashSet<ProductGroup>();
}
جدول ProductGroup
public class ProductGroup
{
public int ProductId { get; set; }
public virtual Product Product{ get; set; }
public int GroupId { get; set; }
public virtual Group Group { get; set; }
}
جدول Image
public class Image
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public bool DefaultPic { get; set; }
public int ProductId { get; set; }
public virtual Product Product{ get; set; }
}
جدول
و اینکه جدول محصولات با چند تا جدول دیگه رابطه چند به چند دارن که ارتباطاتشون مثه جدول گروه انجام دادم. حالا یه query میزنم به این صورت که یه محصول رو با جزییات کامل دریافت کنم :
var qProduct = _context.Products.Where(p=>p.Id==id)
.Include(p => p.Images)
.Include(p => p.User)
.Include(p => p.ProductGroups)
.ThenInclude(pg => pg.Group)
.Include(p => p.ProductComment)
.ThenInclude(pk => pk.Comment)
.ToList();