Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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
Database EF代码优先组合、表映射、模拟复杂类型_Database_Entity Framework_Orm_Entity Framework 4.1_Ef Code First - Fatal编程技术网

Database EF代码优先组合、表映射、模拟复杂类型

Database EF代码优先组合、表映射、模拟复杂类型,database,entity-framework,orm,entity-framework-4.1,ef-code-first,Database,Entity Framework,Orm,Entity Framework 4.1,Ef Code First,我有一个复杂的数据模型(EF4.1代码优先),它使用组合(许多1对1)来实现类似于多重继承的好处。但我有一个问题要解决,希望通过映射 我需要减少要模拟的表(而不是实体)的数量 成功的多重继承 我不能用复杂类型替换1对1组合类 因为我将使用动态数据作为管理后端,而DD不使用 使用复杂类型 每个层次结构的表在这里似乎没有帮助,因为 模拟多重继承 每种类型的表将让位给太多的表 我认为有一种叫做“实体分割”的东西。我想我基本上需要它的反面?我想知道我想要的是否可能。。。基本上是通过多次映射模型组件来模拟

我有一个复杂的数据模型(EF4.1代码优先),它使用组合(许多1对1)来实现类似于多重继承的好处。但我有一个问题要解决,希望通过映射

  • 我需要减少要模拟的表(而不是实体)的数量 成功的多重继承

  • 我不能用复杂类型替换1对1组合类 因为我将使用动态数据作为管理后端,而DD不使用 使用复杂类型

  • 每个层次结构的表在这里似乎没有帮助,因为 模拟多重继承

  • 每种类型的表将让位给太多的表


  • 我认为有一种叫做“实体分割”的东西。我想我基本上需要它的反面?我想知道我想要的是否可能。。。基本上是通过多次映射模型组件来模拟复杂类型。。听起来不可能。我是否应该放弃作文的方法?我总是可以用属性或其他东西对属性进行分组。

    实体拆分的反面称为表拆分,但它只在EF代码中首先发生。

    感谢您的快速回复!如果我试图在多个类中使用单个类(以模拟多继承),那么该组件类如何映射多次(因为多个表将需要它)?例如,如果类型
    SchedulingInfo
    与类型
    Sale
    Order
    DonutBreak
    为1:1,但这3种类型应为3个不同的表。
    SchedulingInfo
    是否可以在不拆分的情况下多次映射到所有3个表?如果不是的话,我还不如将模型展平?没有一个类只能映射一次。唯一的例外是映射继承和拆分方案。确定。所以,如果我不能在DyanmicData中使用复杂类型,那么最好的解决方案是每个类型使用表,并在每个需要它的类上重复每个属性?还是单一继承?