Правильный способ обновления записей с помощью EF с отдельными объектамиC#

Место общения программистов C#
Ответить
Anonymous
 Правильный способ обновления записей с помощью EF с отдельными объектами

Сообщение Anonymous »

Мне очень трудно заставить это работать, хотя мне кажется, что это должно быть очень просто.
Я добавил к своему сервисному уровню кеш для данных, возвращаемых из EF.< /p>
Когда объект возвращается из EF и обновляется, его состояние — EntityState.Modified.
Когда объект возвращается из кэша, его состояние — EntityState.Detached, что имеет смысл.
Я вызываю DbContext.Update, если объект отсоединен, и это отлично работает для всех не- свойства навигации.
Для отслеживаемого объекта я могу обновить свойство FK ID напрямую, но если оно изначально было отключенным, его необходимо обновить через свойство навигации. Что по какой-то причине также приводит к запуску оператора UPDATE для каждого отдельного связанного объекта, а не только для таблицы «многие ко многим», как я ожидал.
Отслеживаемый объект :
// This will save to the DB
job.PrimaryAccountId = 123;

Изначально отсоединенный объект:
// This will NOT save to the DB
job.PrimaryAccountId = 123;

// This will not save to the DB
job.PrimaryAccount.AccountId = 123;

Обновите и сохраните после любого из вышеперечисленных действий:
await _dataAccess.Update(job);
await _dataAccess.SaveChangesAsync();


Подробнее здесь: https://stackoverflow.com/questions/783 ... d-entities
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»