Linq到实体、每种类型的表和可为空的外键关系
我正在使用Linq来应用一种方法。到目前为止,情况一直很好。我有以下设置:Linq到实体、每种类型的表和可为空的外键关系,linq,entity-framework,linq-to-entities,table-per-type,Linq,Entity Framework,Linq To Entities,Table Per Type,我正在使用Linq来应用一种方法。到目前为止,情况一直很好。我有以下设置: 父表 子表(继承) (来自家长) 孙子表 (从子表继承) 链接表(外键可为空,链接到子表) 这是数据库图 在上面的视频之后,我将“每类型表”方法应用于Linq to entities在将上述表添加到模型时创建的默认模式 在应用每种类型的表格之前: 每种类型的表格后面: 然后我编译了这个项目,得到了上图中可以看到的错误。为了解决这个问题,我转到了外键链接的映射,添加了childid字段,错误消息对此抱怨不已 然
- 父表
- 子表(继承) (来自家长)
- 孙子表 (从子表继承)
- 链接表(外键可为空,链接到子表)
<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>
之后
尝试更新EDMX文件映射部分中的AssociationMapping节点,以包含允许为空的条件 e、 g
...
brilliant。。。那完全有效。。现在看起来是这样的:
<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>
<AssociationSetMapping>
...
<Condition ColumnName="" IsNull="false"/>
</AssociationSetMapping>