EF4 ObjectContext.Attach Вопрос?

Если я создам объект, такой как, скажем, Category, присваиваю значения свойствам, один из которых является идентификатором, совпадающим со строкой в ​​базе данных, и передаю его методу ObejctSet.Attach и вызываю SaveChanges для контекста. обновить эту строку в базе данных? Или объект должен быть восстановлен первым?

1 ответ

Решение

Оба сценария возможны. Разница в том, если вы работаете с прикрепленным или отсоединенным экземпляром.

Вы можете создать объект, присоединить его к контексту, сказать контексту, что объект изменен (прикрепление помечает объект как неизменный) и сохранить изменения.

Или же

Вы можете загрузить объект из контекста, изменить объект, сохранить изменения в одном и том же контексте (вам не нужно устанавливать его как измененный, потому что контекст объекта отслеживает изменения для загруженных объектов).

Я написал примеры для обоих сценариев здесь.

Другие вопросы по тегам