Cra*_*lla 7 linq linq-to-entities entity-framework table-per-type
我正在使用Linq来应用每种类型的表格方法.到目前为止,这一直进展顺利.我有以下设置:
这是数据库图

在上面的视频之后,我将Table Per Type方法应用于Linq to entities在将上述表添加到模型时创建的默认模式.
在应用每种类型的表之前:

每种类型的表后:

然后我编译了项目并得到了您在上图中可以看到的错误.为了解决这个问题,我去了外键链接的映射,我添加了childid字段,错误信息正在呻吟.

然后我重新编译并得到另一个错误:
映射片段中的问题从第147,176行开始:具有不同键的两个实体映射到同一行.确保这两个映射片段不会将具有重叠键的两组实体映射到同一组行.
这就是我现在的观点.问题似乎是"LinkingTable"上的"ChildID"是Nullable.如果我将其设置为不可空,我不会得到上述错误.
我已将上述步骤中使用的数据库和项目保存到天空驱动器中.
有谁知道如何解决这个错误?
戴夫
这是固定代码(感谢Gecko)
之前
<AssociationSetMapping Name="FK_LinkingTable_Child"
TypeName="TablePerTypeModel.FK_LinkingTable_Child"
StoreEntitySet="LinkingTable">
<EndProperty Name="Child">
<ScalarProperty Name="Id" ColumnName="ChildID" />
</EndProperty>
<EndProperty Name="LinkingTable">
<ScalarProperty Name="LinkTableID" ColumnName="LinkTableID" />
</EndProperty>
</AssociationSetMapping>
Run Code Online (Sandbox Code Playgroud)
后
<AssociationSetMapping Name="FK_LinkingTable_Child"
TypeName="TablePerTypeModel.FK_LinkingTable_Child"
StoreEntitySet="LinkingTable">
<EndProperty Name="Child">
<ScalarProperty Name="Id" ColumnName="ChildID" />
</EndProperty>
<EndProperty Name="LinkingTable">
<ScalarProperty Name="LinkTableID" ColumnName="LinkTableID" />
</EndProperty>
<Condition ColumnName="ChildID" IsNull="false"/>
</AssociationSetMapping>
Run Code Online (Sandbox Code Playgroud)
尝试更新EDMX文件的Mapping部分中的AssociationMapping节点,以包含允许空值的条件.
例如
<AssociationSetMapping>
...
<Condition ColumnName="" IsNull="false"/>
</AssociationSetMapping>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3033 次 |
| 最近记录: |