我正在开始使用 OData 和实体框架。
我创建了一个公开客户的控制器。在模型(edmx)中只有一个实体(客户)并且一切正常(数据正在渲染)。
现在,当我添加第二个实体(订单)(从数据库更新模型,选择订单)时,一对多(1 个客户对多个订单)会自动设置。
我什么也没做,当我编译/运行控制器时,我收到此错误:
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 部分或“实体框架”的“配置”上。
我假设模型构建器无法找出实体类型 Order 的关键属性。您可以通过多种方式帮助模型构建者,
builder.EntitySet<Order>("orders");
。这会添加一个新的实体集“orders”,并且还具有将类型“Order”标记为实体类型的效果。您还必须指定“Order”的关键属性。
使用以下标记标记“Order”类型上的关键属性(或多个属性)[Key]
属性。
如果您讨厌属性并且更喜欢在代码中执行它,您可以这样做,builder.EntitySet<Order>("orders").EntityType.HasKey(o => order.KeyProperty);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)