Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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
Linq到实体、每种类型的表和可为空的外键关系_Linq_Entity Framework_Linq To Entities_Table Per Type - Fatal编程技术网

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字段,错误消息对此抱怨不已 然

我正在使用Linq来应用一种方法。到目前为止,情况一直很好。我有以下设置:

  • 父表
  • 子表(继承) (来自家长)
  • 孙子表 (从子表继承)
  • 链接表(外键可为空,链接到子表)
这是数据库图

在上面的视频之后,我将“每类型表”方法应用于Linq to entities在将上述表添加到模型时创建的默认模式

在应用每种类型的表格之前:

每种类型的表格后面:

然后我编译了这个项目,得到了上图中可以看到的错误。为了解决这个问题,我转到了外键链接的映射,添加了childid字段,错误消息对此抱怨不已

然后我重新编译并得到另一个错误:

映射片段启动时出现问题 在第147176行:两个实体 不同的关键点映射到同一个关键点 一行确保这两个映射 片段不映射两组对象 具有重叠关键点的实体 同一组行

这就是我现在的观点。问题似乎是“LinkingTable”上的“ChildID”可以为空。如果我将其设置为不可为null,则不会出现上述错误

我已将上述步骤中使用的数据库和项目保存到一个文件夹中

有人知道如何修复此错误吗

戴夫

这是固定代码(多亏了壁虎)

以前

<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>