Я переношу свой проект EF6 MVC из ObjectContext в DbContext с ленивой загрузкой.EF не обновляет связанные объекты в SaveChanges
С ObjectContext, я мог бы сделать следующее:
// Create a new user:
User u = new User();
u.LineManagerID = 42; // Set foreign key
db.Users.Add(u);
db.SaveChanges();
// get property of related entity as set above by foreign key
User lm = u.LineManager;
С DbContext, u.LineManager
равно нулю даже новый объект сохраняется правильно, и я подозреваю, что если бы я сделал еще один вызов к базе данных, было бы хорошо.
Доступны ленивые загрузки и динамические прокси.
Почему новый объект не обновляется должным образом?
Пожалуйста, помогите! Я вижу, что эта миграция будет намного сложнее, чем я думал ...!
EDIT - Я хотел бы добавить, что я использую DB-первых генерации коды
Возможный дубликат [Entity Framework: я устанавливаю внешний ключ, SaveChanges затем получает доступ к свойству навигации, но не загружает связанный объект. Почему нет?] (Http://stackoverflow.com/questions/15552891/entity-framework-i-set-the-foreign-key-savechanges-then-access-the-navigation) – Colin
Думаю, вам нужно перейти на db .Users.Attached (пользователь); то вы должны сказать, что что-то обновляете. Это было бы что-то вроде db.Users.Attached (user); db.Entry (пользователь) .State = EntityState.Modified; Кроме того, я не считаю, что вам нужно вручную указать, какой идентификатор обновить. Пока у вас есть ссылка на этого менеджера на ваш взгляд. Например, если у вас есть что-то вроде @ html.EditorFor (model => model.Manager.Name), чтобы захватить имя менеджера, он должен обновить соответствующий столбец. Надеюсь, я делаю сенсацию. –