【发布时间】:2015-09-17 00:26:42
【问题描述】:
public void AddMeal(MealModel mealModel)
{
using (var context enter code here= new HealthContext())
{
var meal = new Meal
{
MealNumber = mealModel.MealNumber,
MealEntries = new List<MealEntry> { new MealEntry { FoodId = 1, MealEntryNumber = 1, Calories = 250, MealId = 1 } },
DayId = mealModel.Date
};
context.Meals.Add(meal);
context.SaveChanges();
}
}
我正在使用带有代码优先迁移的 Entity Framework 7,并正在尝试向数据库添加新的“膳食”。
使用上面列出的 2 列成功添加了“Meal”,但未添加“MealEntries”。 MealEntries 是 MealEntry 的 ICollection,用作存在于“Meal”实体上的导航属性。
在这个代码示例中,我什至对新的“列表”进行了硬编码,以查看这是否可行,但即使这样也没有被添加到数据库中。
我在调试代码时注意到的一件奇怪的事情是,在单步执行“添加”命令后,EF 将所有主键和/或外键设置为负值,除了每个“ MealEntry 列表中的“MealEntry”。这几乎就像 EF 没有跟踪此列表,因此不会更新它。
当我添加“餐食”时,我需要做什么才能将列表的导航属性“批量”一一添加到数据库中的相应表中?
【问题讨论】:
标签: c# asp.net asp.net-core entity-framework-core