【问题标题】:Adding relation to base entity (inheritance)添加与基础实体的关系(继承)
【发布时间】:2011-10-28 22:29:22
【问题描述】:

我有 3 种传输类型。其中两个拥有工人和车辆的详细信息。我需要在实体框架中表示这些实体。所以我创建了一个名为 Transmission 的基础实体,它拥有通用的传输属性。然后,我为三种传输类型创建了另外 3 个特定实体:Transmission1、Transmission2 和 Transmission3。 Tramsission的主键被每个传输类型的主键引用。

我将所有 4 个实体加载到 edmx 并创建继承:Transmission 是 Transmission1、Transmission2 和 Transmission3 的父级。

现在我想封装 Transmission1 和 Transmission2 中存在的工人和车辆数据。所以我创建了具有传输 id 和工人/车辆属性的 WorkerVehicle 实体。

现在,当我将 WorkerVehicle 加载到 edmx 时,我得到了 WorkerVehicle 和 Transmission 实体之间的关系,而我真正想要的是 WorkerVehicle 和 Transmission1/Transmission2 之间的关系。

我该如何解决这个问题?
是不是我把 WorkerVehicle 的关系留给了 Transmission,让 Transmission3 存储 WorkerVehicle 的数据?

更新
这是描述这种情况的图像:

【问题讨论】:

  • 您能否发布 edmx 设计的屏幕截图并指出您想要的与图中所示的不同之处?
  • @Chris:我的真实世界情况更复杂,包含9种传输类型和大量数据。我会尝试添加一些不会使所有事情复杂化的内容。

标签: c# .net entity-framework database-design


【解决方案1】:

除非你重构你的模型并创建一些从Transmission 派生的中间基类,否则你不能这样做,它将是Container 类的父类。之后,您可以尝试与该班级建立关系。在 EDMX 中将关系移动到派生类通常很笨拙,您可以手动修改 EDMX。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多