gpt4 book ai didi

entity-framework - OData异常复杂类型 'WebTools.Order'通过属性 'WebTools.Customer'引用实体类型 'Customer'

转载 作者:行者123 更新时间:2023-12-04 07:23:05 26 4
gpt4 key购买 nike

我开始使用 OData 和 Entity Framework 。

我创建了一个暴露客户的 Controller 。在模型 (edmx) 中只有一个实体(客户)并且一切正常(正在呈现数据)。

现在,当我添加第二个实体(订单)(从数据库更新模型,选择订单)时,1 对多(1 客户对多订单)会自动设置。

我什么都不做,当我编译/运行 Controller 时,出现此错误:

Line 23:         builder.EntitySet(Of Customer)("Customers")
Line 24: Return builder.GetEdmModel() --> Exception Here
Line 25:
Line 26: End Function

复杂类型“WebTools.Order”通过属性“Customer”引用实体类型“WebTools.Customer”。

如果我删除订单实体,它会起作用。

我不确定问题出在等式的 OData/WebAPI 部分的“配置”还是“ Entity Framework ”。

最佳答案

我假设模型构建器无法找出实体类型 Order 的关键属性。您可以通过几种方式帮助模型构建者,

  • builder.EntitySet<Order>("orders"); .这会添加一个新的实体集“订单”,并且还具有将“订单”类型标记为实体类型的效果。您还必须指定“订单”的关键属性。
  • 使用 [Key] 在“订单”类型上标记关键属性(或多个属性)属性。
  • 如果你讨厌属性并且更喜欢在代码中使用它,你可以这样做,builder.EntitySet<Order>("orders").EntityType.HasKey(o => order.KeyProperty);
  • 关于entity-framework - OData异常复杂类型 'WebTools.Order'通过属性 'WebTools.Customer'引用实体类型 'Customer',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15438195/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com