C# 如何在继承的实体中指定属性的类型?
我最近开始在项目中使用实体框架,我想知道如何为一个特定的案例建模 考虑以下情况:C# 如何在继承的实体中指定属性的类型?,c#,entity-framework,inheritance,C#,Entity Framework,Inheritance,我最近开始在项目中使用实体框架,我想知道如何为一个特定的案例建模 考虑以下情况: 我的应用程序需要对几种类型的合同进行建模 每种类型的合同都包含一个或多个分包合同实例 每种类型的合同都在集合中公开其分包合同 每种类型的合同只能包含与合同类型对应的特定类型的分包合同(类型为ContractA的合同只能包含类型为Subcontract a的分包合同,类型为ContractB的合同只能包含类型为Subcontract B的分包合同) 在实体框架模型中对此进行建模的最佳方式是什么 我的第一次尝试使用
- 我的应用程序需要对几种类型的合同进行建模
- 每种类型的合同都包含一个或多个分包合同实例
- 每种类型的合同都在集合中公开其分包合同
- 每种类型的合同只能包含与合同类型对应的特定类型的分包合同(类型为
的合同只能包含类型为ContractA
的分包合同,类型为Subcontract a
的合同只能包含类型为ContractB
的分包合同)Subcontract B
我的第一次尝试使用了基本类型之间的关联,但我希望能够在每个派生类型的合同上指定分包合同的类型,而不必在特定类型的合同上有两个不同的属性。我最近遇到了类似的情况。最后,我只设置了基本类型之间的关联,并向实体添加了验证,以确保属性只包含正确的子类型。退房 缺点是这种情况发生在运行时,因此程序员可能会分配错误的类型,直到测试时才会发现。它还需要将对象强制转换为正确的类型才能使用它们。这是我能想到的最好的选择 我很想知道是否有人有更好的解决办法