ASP .net实体框架导航属性错误

时间:2018-08-01 17:03:13

标签: asp.net entity-framework navigation-properties

我有以下架构(首先是数据库):

enter image description here

我尝试像这样(带点)在EntityDataSource的Include属性中添加相关表:

<asp:EntityDataSource ID="ServersEDS" runat="server"
        ConnectionString="name=InventoryEntities"
        DefaultContainerName="InventoryEntities"
        EnableFlattening="False" EntitySetName="Servers"
        Include="Domains, Tag_entites, Tag_Services, Tag_Services.Contact_Service">
    </asp:EntityDataSource>

但是我有以下错误(法语):

在化学上包含适当的证明。 L'EntityType'InventoryModel.Contact_Service'声明了导航对象“服务器”的专有名称。

怎么了?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

上面提供的实体图清楚地表明Contact_Service实体没有名为Servers的导航属性,如异常消息所示:

  

EntityType'InventoryModel.Contact_Service'未声明   导航属性,名称为“服务器”。

由于您已将EntitySetName="Servers"中的EntityDataSource设置为输出实体,因此Include属性中使用的所有实体名称都必须具有Servers实体的导航属性,如下例所示。

<asp:EntityDataSource ID="ServersEDS" runat="server"
    ConnectionString="name=InventoryEntities"
    DefaultContainerName="InventoryEntities"
    EnableFlattening="False" EntitySetName="Servers"
    Include="Domains, Tag_entites, Tag_Services, Datastores, Servers_IPs">
</asp:EntityDataSource>

如果您想在上面的EF数据源定义中包括Contact_Service,请在两个表之间具有外键关系的情况下,将导航属性放在Servers中的Contact_Service实体中。