2
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進行代碼優先遷移,並試圖向數據庫添加新的「Meal」。未在實體框架7中添加導航屬性使用vNext
的「膳食」與上面列出的2列添加成功,但「MealEntries」不添加。 MealEntries是MealEntry的ICollection,用作「膳食」實體上存在的導航屬性。
在此代碼示例我甚至硬編碼的新的「目錄」,看看是否會工作,但即使沒有被添加到數據庫中。
我在調試代碼時注意到了一件奇怪的事情,那就是在單步執行「Add」命令後,所有主鍵和/或外鍵都被EF設置爲負值,除了各自的「Id」 「MealEntry」在「MealEntries」列表中,它幾乎就像EF沒有跟蹤這個列表並且因此不會更新它。
我需要做什麼才能讓列表的導航屬性成爲「批量」添加1 1到數據庫中的其各自的表時我加一個「餐」?
謝謝!這比我提出的解決方法要優雅得多。 – Sharpiro
這將在下一個測試版中修復。請參閱https://github.com/aspnet/EntityFramework/pull/2979 – natemcmaster