我目前有4张桌子。
产品,类别,子类别,ProductSubCategory。
类别具有OneToMany SubCategory关系
产品与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
ProductSubCategory表
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”将返回SubCategory名称或“其他”名称
目前要获取名称我必须输入“Product.SubCategories [x] .SubCategory.Name”并获取“其他”名称我必须输入“Product.SubCategories [x] .Other”
有更好的方法吗?
谢谢!
编辑:修正了拼写错误
答案 0 :(得分:0)
如果要输入较少的内容,只需将投影属性添加到ProductSubCategory
: - )
public virtual string Name
{
get { return SubCategory.Name; }
}