【问题标题】:ASP .net Entity Framework Navigation Property ErrorASP .net 实体框架导航属性错误
【发布时间】:2018-08-01 17:03:13
【问题描述】:

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

我尝试像这样(带点)在 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>

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

Un chemin d'accès 包括 spécifié n'est pas valide。 L'EntityType 'InventoryModel.Contact_Service' ne déclare pas de propriété de navigation avec le nom 'Servers'。

怎么了?

感谢您的帮助。

【问题讨论】:

  • 请翻译异常信息。这是一个英文网站。

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


【解决方案1】:

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

EntityType 'InventoryModel.Contact_Service' 没有声明 名为“服务器”的导航属性。

由于您已将EntityDataSource 中的EntitySetName="Servers" 设置为输出实体,因此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,请将导航属性放在Contact_Service 中的Servers 实体中,并在两个表之间使用外键关系。

【讨论】:

  • 我认为在 O'Reilly 编程实体框架一书中读到它是可能的。根据下图(参见 url:i.stack.imgur.com/pmBBF.png),他们可以通过 Customer.Reservation.Trip.Destination 从 Contact 导航到 Destination 目的地没有 Contact 属性。为什么在我的情况下我不能?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-29
  • 2016-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多