我最近开始在项目上使用实体框架,我想知道如何为特定案例建模。
考虑这种情况:
ContractA
的合同只包含类型为SubcontractA
的子合同,类型为{{{}}的合同。 1}}只包含ContractB
)在实体框架模型中对此进行建模的最佳方法是什么?
我的第一次尝试使用了基类型之间的关联,但我希望能够在每种派生类型的Contract上指定Subcontracts的类型,而不需要在特定类型的Contract上有两个不同的属性。
答案 0 :(得分:0)
我最近遇到了类似的情况。我最终只设置了基类型之间的关联,并向实体添加了验证,以确保属性只包含正确的子类型。查看IValidatableObject。
缺点是这在运行时发生,因此程序员可能会分配错误的类型,并且在测试之前他们不会发现。它还需要将对象转换为正确的类型才能使用它们。这是我能提出的最佳选择。
我很想知道某人是否有更好的解决方案。