我有这些表:
项目 编号(PK) 类别A B类 类别C
类别 类别(PK) 类别类型 (PK) 市场(PK) 姓名
在 Item 表上我想要 3 个导航属性: CategoriesA:使用 CategoryA,它映射到 CategoryId 和 CategoryType = 1 的类别表 CategoriesB:使用 CategoryB,它映射到 CategoryId 和 CategoryType = 2 的 Category 表 CategoriesC:使用 CategoryC,它映射到 CategoryId 和 CategoryType = 3 的类别表 物品上不存在的通知市场未使用。
当然反之亦然,这意味着类别中的一行应该能够使用此属性导航到它的项目: 项目:如果类别的类别类型为 1,则使用类别映射到项目表,如果类别的类别类型为 1,则使用类别 B,如果类别类型为 3,则使用类别 C。
我不明白这些更复杂的导航配置。
我一直在这里阅读,但我无法理解 builder.HasMany(...).WithMany(...).UsingEntity.
您应该为类别使用派生类型
public class Item
{
public int Id { get; set; }
public Category Category { get; set; }
}
public class Category
{
public int Id { get; set; }
}
public class CategoryA : Category
{
}
public class CategoryB : Category
{
}
public class CategoryC : Category
{
}