实体框架4.1代码优先的多级继承

时间:2012-05-05 07:49:32

标签: entity-framework inheritance ef-code-first

层次:

  • 抽象包
  • ServerPackage:Package
  • ClientPackage:ServerPackage

就EF CF而言,所有三个表都具有一对一的关系。我是否选择了正确的作品以满足以下情况?

情景:

  • 抽象包由服务器根据请求使用唯一的Guid创建。
  • 服务器创建ServerPackage并发送给客户端。
  • 客户端处理ServerPackage并创建一个ClientPackage以发送回服务器。

换句话说,只要Package请求进入,就应该创建ServerPackage和ClientPackage。我假设这不起作用,因为我需要将两个包绑定到相同的抽象包ID。

我应该使用合成而不是继承并强制建立一对一的关系吗?

请告知。

1 个答案:

答案 0 :(得分:1)

仅当所有包都是相同的实例时才会起作用=>当服务器收到请求时,它必须立即创建ClientPackage。它无法创建Package,因为Package是抽象的,如果它只创建ServerPackage,您将无法使用相同的ID创建ClientPackage。所以看起来整个你的继承在这种情况下是多余的。

如果您想关注工作流程,则需要合成。