2

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

考虑这种情况:

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

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

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

4

1 回答 1

0

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

缺点是这发生在运行时,因此程序员可能会分配错误的类型,并且在测试之前他们不会发现。它还需要将对象转换为正确的类型才能使用它们。这是我能想到的最好的选择。

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

于 2013-07-24T15:43:36.727 回答