【发布时间】:2018-10-16 07:06:34
【问题描述】:
我正在处理一个使用 EF 设计器和 .edmx 文件(模型优先)的实体框架项目。实体映射到 MySQL 数据库并生成模型代码。我有 3 个在逻辑上代表“资源”并共享一些但不是所有字段的实体。例如:
public partial class ResourceA {
public int ID { get; set; }
public long ProductID { get; set; }
public string Path { get; set; }
}
public partial class ResourceB {
public int ID { get; set; }
public long ProductID { get; set; }
public string Label { get; set; }
}
public partial class ResourceC {
public int ID { get; set; }
public long ProductID { get; set; }
public bool Open { get; set; }
public bool Replacement { get; set; }
}
这些实体中的每一个都映射到数据库中的一个表。
我有一个代码区域,我想在其中循环三种不同的资源类型。在那个循环中,我不需要访问 3 种实体类型之间不常见的属性。有没有一种方法可以做到这一点,而无需创建三个单独的循环,除了实体类型之外,所有代码都相同?
我尝试在 EF 设计器中创建一个 GenericResource 实体,然后使 ResourceX 实体固有它,但在映射时我感到困惑,因为我不需要 GenericResource 映射到数据库。我只想创建可以以只读方式处理三种资源类型中的任何一种的代码。我不需要创建新的GenericResource。
也许这在模型优先的情况下是不可能的,我需要先切换到代码?
【问题讨论】:
标签: c# entity-framework entity-framework-core