1

给定两个实体:父、子。

每个类型继承的表在以下情况下会做什么:

  1. 您添加了一个名为 Child 的实体,其所有值均留空,但已填写其 Parent 属性。它会添加子实体还是仅添加父实体?

  2. 如果 ID == id 的实体 Parent 存在,但它没有 Child,是否会针对具有谓词 ID == id 的存储库 Child 的查询返回任何内容?IE。这样的查询会被翻译成左连接还是交叉连接?

4

2 回答 2

1
  1. 它总是会尝试在两个表中添加一个条目

  2. EF不会返回任何东西。生成的 SQL 是左连接

于 2012-05-12T19:00:15.737 回答
0
  1. 您是否认为 EF 会检查子实体,如果所有属性都可以为空,如果是,那么它不会保存它?为什么会那样做??此外,层次映射是规则,如果实体是子类型,那么它必须在子表中有记录。所以答案可能是否定的。即使子项中没有设置任何属性,它仍然会在表中创建记录。

  2. 当它还没有机会查询它的类型时,EF 如何判断实体是否属于父类型?所以不,每次都会生成加入。

于 2012-05-12T18:41:05.473 回答