【发布时间】:2025-11-29 12:45:01
【问题描述】:
我看到this post 提出了一个答案,但我的情况有点不同。
// Create a new Lunch entity with these two properties.
Lunch lunchEntity = new LunchEntity();
lunchEntity.UserId = userId;
lunchEntity.MealId = mealId;
// Add the entity to the DbContext and save the changes.
restaurantEntities.Lunches.Add(lunchEntity);
restaurantEntities.SaveChanges();
// Get the Lunch entity that we inserted above.
Lunch mySavedLunchEntity = restaurantEntities.Lunches.Find(lunchEntity.Id);
现在,插入Lunch 实体后,我需要包含其所有导航属性的实例。这就是为什么我使用 Find() 方法来选择新创建的实体。问题是 User 导航属性为空,而 Meal 导航属性引用了正确的对象。
另外,如果我执行这个语句
Lunch mySavedLunchEntity = restaurantEntities.Lunches.Find(lunchId);
另外,在另一个应该为特定 Id 检索午餐实体的方法中,所有导航属性都正确包含。
所以,我的问题是,当我只查询给定元素时,为什么我的所有导航属性都包含在内,而如果我仅在插入元素后才查询该元素,则其中一些不包含?
【问题讨论】:
标签: c# .net entity-framework insert navigation-properties