实体框架流畅的多对多配置

问题描述 投票:0回答:1

我有这些表:

项目 编号(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.

c# entity-framework fluentvalidation
1个回答
0
投票

您应该为类别使用派生类型

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
{

}
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.