EF4 ObjectContext.Attach Вопрос?
Если я создам объект, такой как, скажем, Category, присваиваю значения свойствам, один из которых является идентификатором, совпадающим со строкой в базе данных, и передаю его методу ObejctSet.Attach и вызываю SaveChanges для контекста. обновить эту строку в базе данных? Или объект должен быть восстановлен первым?
1 ответ
Оба сценария возможны. Разница в том, если вы работаете с прикрепленным или отсоединенным экземпляром.
Вы можете создать объект, присоединить его к контексту, сказать контексту, что объект изменен (прикрепление помечает объект как неизменный) и сохранить изменения.
Или же
Вы можете загрузить объект из контекста, изменить объект, сохранить изменения в одном и том же контексте (вам не нужно устанавливать его как измененный, потому что контекст объекта отслеживает изменения для загруженных объектов).
Я написал примеры для обоих сценариев здесь.