我先通过EF6 Code创建了下一个表。 PInvoke
我通过向导为EF生成了2个OData控制器。 在评论中我需要添加模型构建器初始化我在评论中做到了
// Web API configuration and services
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<SchoolChildrens>("SchoolChildrens");
builder.EntitySet<AttendanceBook>("AttendanceBookSet");
builder.EntitySet<FoodBudgetIncome>("FoodBudgetIncomeSet");
builder.EntitySet<MenuOptions>("MenuOptions");
builder.EntitySet<DishType>("DishTypeSet");
builder.EntitySet<MenuDetails>("MenuDetailsSet");
builder.EntitySet<DishType>("DishTypes");
builder.EntitySet<MenuOptions>("MenuOptionsSet");
但是我收到了错误
无法自动绑定实体上的导航属性“DishType” 为源实体集键入“SchoolMeals.Data.MenuOptions” 'MenuOptions'因为有两个或更多匹配的目标实体 集。匹配的实体集是:DishTypeSet,DishTypes。
如果我删除
builder.EntitySet( “DishTypes”); builder.EntitySet( “MenuOptionsSet”);
我无法使用我的2控制器public class DishTypesController : ODataController
答案 0 :(得分:1)
问题是由于您将DishType和MenuOption映射到两个单独的实体这一事实引起的: -
builder.EntitySet<DishType>("DishTypes");
builder.EntitySet<DishType>("DishTypeSet");
builder.EntitySet<MenuOption>("MenuOption");
builder.EntitySet<MenuOption>("MenuOptionSet");
答案 1 :(得分:1)
错误消息显示约定模型构建器无法自动将导航属性“'DishType”绑定到实体集,因为有两个实体集。在这种情况下,您应该使用Fluent API将导航属性显式绑定到实体集。您可以在NavigationSourceConfigurationOfTEntityType中使用以下API: