c# - 根据属性值映射到类

标签 c# mysql entity-framework

假设我有两个类

class Employee 
{
    public string EmployeeId { get; set; }
    public int Manager { get; set; }
}

class Manager : Employee 
{

}

其中 int Manager 可以是 10。我想在我的 EmployeeContext 中创建一个映射,以便将员工表中的员工条目(其中 manager 等于 1)映射到 Manager 类。

最佳答案

您需要按照描述实现 TPH 继承模式 here . 您需要添加到所描述的实现中的是 - 您需要在实体类中包含 Discriminator 属性并将其映射到相应的数据库字段。然后根据 Discriminator 属性的值实现你的 int Manager - 而 Manager 只能是只读属性。

如果您想让员工成为经理,您必须更改 Discriminator 字段的值。反过来,您必须了解数据库中发生的情况。 TPH 远非 Elixir ,您可能想使用另一种模式,但从这个开始是个不错的选择。

另见: Entity Framework Inheritance Mapping (TPH)How to map inherited entities in EF code-first .

关于c# - 根据属性值映射到类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30684550/

相关文章:

mysql - mysql中的分表性能

c# - 如何从 Entity Framework Core 中的 DbContext 获取列名和相应的数据库类型

c# - Linq to Entities 通过变量列表获取实体列表

c# - 更改字符串以将 "A"、 "An"、 "The"移动到 c# 中字符串末尾的最佳方法

c# - 未知元素在反序列化过程中被忽略

c# - 超时已过。在从池中获取连接之前超时期限已过。

c# - 在 Rx.Net 中,我如何实现一个可观察的反馈循环直到反馈耗尽?

mysql - 玛丽亚数据库 : Remove Specific Link From Column

java - 高可用性 Web 应用程序 - 如何升级?

entity-framework - Entity Framework 迁移Azure DevOps发布管道