Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在继承的实体中指定属性的类型?_C#_Entity Framework_Inheritance - Fatal编程技术网

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

C# 如何在继承的实体中指定属性的类型?,c#,entity-framework,inheritance,C#,Entity Framework,Inheritance,我最近开始在项目中使用实体框架,我想知道如何为一个特定的案例建模 考虑以下情况: 我的应用程序需要对几种类型的合同进行建模 每种类型的合同都包含一个或多个分包合同实例 每种类型的合同都在集合中公开其分包合同 每种类型的合同只能包含与合同类型对应的特定类型的分包合同(类型为ContractA的合同只能包含类型为Subcontract a的分包合同,类型为ContractB的合同只能包含类型为Subcontract B的分包合同) 在实体框架模型中对此进行建模的最佳方式是什么 我的第一次尝试使用

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

考虑以下情况:

  • 我的应用程序需要对几种类型的合同进行建模
  • 每种类型的合同都包含一个或多个分包合同实例
  • 每种类型的合同都在集合中公开其分包合同
  • 每种类型的合同只能包含与合同类型对应的特定类型的分包合同(类型为
    ContractA
    的合同只能包含类型为
    Subcontract a
    的分包合同,类型为
    ContractB
    的合同只能包含类型为
    Subcontract B
    的分包合同)
在实体框架模型中对此进行建模的最佳方式是什么


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

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

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

我很想知道是否有人有更好的解决办法