由于 EF 的这个小怪癖,我有一个令人沮丧的情况。这是该行为的简单演示。首先是数据库模式:
如您所见,RestrictedProduct
它是产品的一个特例,我打算Product
用一些特殊的代码来创建它的子类。
现在我导入到 EF 数据模型:
哎呀!EF 看到它只有 2 个字段,都是 FK,因此它将其映射为和RestrictedProduct
之间的一对多关系。所以我回到数据库并添加一个字段,现在我的 EF 模型看起来好多了:Product
Restriction
Dummy
RestrictedProduct
但那个Dummy
领域是愚蠢和毫无意义的。也许我可以删除它?我从数据库表和实体模型中删除了字段,然后从数据库中刷新模型......
不好了!Product-Restriction
协会以新名称 ( ) 回来了RestrictedProduct1
!另外,它不会编译:
错误 3034:从行 (x, y) 开始映射片段时出现问题:具有可能不同键的两个实体映射到同一行。确保这两个映射片段将 AssociationSet 的两端映射到相应的列。
Dummy
除了将字段保留在RestrictedProduct
表格上之外,有什么方法可以防止这种行为?