Обновление Entity Framework - перезаписывать значения или нет - PullRequest
1 голос
/ 07 декабря 2011

Я использую Entity Framework 4.1 для выполнения операций CRUD с моей базой данных.Я отключил следующие свойства:

this.Configuration.ProxyCreationEnabled = false;
this.Configuration.LazyLoadingEnabled = false;
this.Configuration.AutoDetectChangesEnabled = false;

Мой метод обновления пользовательского объекта

    public void Edit(User user)
    {
        _context.Entry(user).State = System.Data.EntityState.Modified;
        _context.SaveChanges();
    }

Ive восстановлен:

User.Forename = Joe
User.Surname = Bloggs

Я передал объект пользователяк моему методу редактирования с помощью

User.Forename = Joe
User.Surname = Bloggs

Если я передаю свой пользовательский объект методу редактирования, но я не изменил ни одного из его свойств, как указано выше.Будут ли свойства перезаписаны в базе данных с тем же значением или Entity Framework узнает, что значение не изменилось?

1 Ответ

2 голосов
/ 07 декабря 2011

Поскольку вы явно устанавливаете состояние на Modified, EF отправляет оператор обновления в базу данных, даже если ни одно из значений свойства не изменилось.

Если вы не хотите, чтобы EF обновлял базу данных теми же значениями, вам нужно будет добавить логику, чтобы отслеживать, изменились ли значения, так как вы устанавливаете AutoDetectChangesEnabled в false.

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