EntityFramework v4 ApplyCurrentValues ​​не сохраняет указанные изменения свойств - PullRequest
1 голос
/ 07 января 2010

У меня есть проект, в котором я использую EFv4 для сохранения данных в моем хранилище. Это работает, как и ожидалось, для простых свойств моего объекта, но ничего не делает для связанных объектов.

Например, у меня есть объект User и связанное свойство Roles, которое представляет собой набор сущностей Role.

Если я обновлю дату последней активности пользователя и роли, назначенные пользователю в моем пользовательском интерфейсе, а затем отправлю объект пользователя обратно в репозиторий для обновления, я смогу увидеть новые значения в объекте пользователя для lastActivity и ролей, но когда я звоню:

this.ObjectContext.ApplyCurrentValues(entitySet.Name.ToString(), entity);
this.ObjectContext.SaveChanges();

сохраняются только простые свойства, такие как дата последней активности, изменения роли игнорируются.

Нужно ли что-то специальное обновить все объекты, на которые есть ссылки?

UPDATE: Я немного больше искал в Интернете и увидел, что кто-то упомянул, что ApplyCurrentValues ​​влияет только на скалярные свойства. Все еще не меняет мой первоначальный вопрос, но это может объяснить, почему связанные сущности не обновляются. Документация Microsoft не упоминает об этом из того, что я вижу.

1 Ответ

2 голосов
/ 22 января 2010

Я ввел это с MSFT, и, похоже, он работает, как ожидалось. Вот цитата из MSFT:

ApplyCurrentValues ​​работает только с скалярные свойства на одном юридическое лицо. Что вы пытаетесь выполнить будет проще всего с самообследуемые лица. Надеюсь, что перейти на использование этих объектов не будет слишком больно, потому что ты может просто swpa, какой генерации кода шаблон, который вы используете (из по умолчанию один для самоконтроля юридическое лицо). Вам не придется изменить свою модель на всех, и надеюсь, изменения в вашем хранилище будет маленьким.

Я зарегистрировал проблему с документацией в уточнить, что делает ApplyCurrentValues. Спасибо, что сообщили об этом!

Вот указанный вопрос :

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...