如何在继承的实体中指定属性的类型

本文关键字:属性 类型 实体 继承 | 更新日期: 2023-09-27 18:24:56

我最近开始在项目中使用实体框架,我想知道如何为特定的案例建模。

考虑这个场景:

  • 我的应用程序需要为几种类型的合同建模
  • 每种类型的合同都包含一个或多个分包合同实例
  • 每种类型的合同都会在集合中公开其分包合同
  • 每种类型的合同只能包含与该合同对应的特定类型的分包合同(ContractA类型的合同将只包含SubcontractA类型的分包合同,ContractB类型的合同仅包含SubcontractB类型的分承包合同)

在实体框架模型中对此进行建模的最佳方式是什么?

我的第一次尝试使用了基本类型之间的关联,但我希望能够在每个派生类型的合同上指定分包合同的类型,而不需要在特定类型的合同中具有两个不同的属性。

如何在继承的实体中指定属性的类型

我最近遇到了类似的情况。我最终只设置了基本类型之间的关联,并向实体添加了验证,以确保属性只包含正确的子类型。签出IValidatableObject。

缺点是这种情况发生在运行时,所以程序员可能会分配错误的类型,直到测试后才会发现。它还需要将对象强制转换为正确的类型才能使用它们。这是我能想到的最好的选择。

我很想知道是否有人有更好的解决方案。