我目前有 4 张桌子。
产品、类别、子类别、产品子类别。
Category 具有 OneToMany SubCategory 关系
Product 与 Category 具有 OneToOne 关系,与 SubCategory 具有 ZeroToMany 关系
所以表格看起来像这样
产品表
Id Name CategoryId
-----------------------------
1 P1 1
2 P2 2
类别表
Id Name
-----------------
1 Food
2 Travel
子类别表
Id Name CategoryId
------------------------------
1 Italian 1
2 Thai 1
产品子类别表
Id ProductId SubCategoryId Other
-------------------------------------------------------
1 1 1 NULL
2 1 2 NULL
3 1 NULL Other Sub Cat
目前,我将 ProductSubCategory 放在另一个类中,其中 Product 和 SubCategory 与它有 OneToMany 关系。
产品类别
public class Product
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual Category Category { get; set; }
public virtual ICollection<ProductSubCategory> SubCategories { get; set; }
...
}
子类别类
public class SubCategory
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual Category Category { get; set; }
public virtual ICollection<ProductSubCategory> Products { get; set; }
...
}
ProductSubCategory 类
public class ProductSubCategory
{
public virtual Product Product { get; set; }
public virtual SubCategory SubCategory { get; set; }
public virtual string Other { get; set; }
...
}
我想以这种方式访问它:“Product.SubCategories[x].Name”,它将返回子类别名称或“其他”名称
目前要获得名称,我必须输入“Product.SubCategories[x].SubCategory.Name”并获得“其他”名称,我必须输入“Product.SubCategories[x].Other”
有没有更好的方法?
谢谢!
编辑:修正错字