AddOrUpdate()
проверяет запись на существование с помощью EntityKey.Поэтому, если x.Name
, который вы проверяете, не является ключевым - ваш подход верен.
Также, поскольку у вас есть только значение имени в качестве входного параметра («Роб»), вам придется запрашивать запись из контекста, и вы будете прикреплять ее.Так что тогда вы можете просто изменить его, как вам нужно, и изменения будут отслеживаться автоматически.В качестве альтернативы, создайте его, если он не существует, и позвоните Add()
.
. Учитывая вышеизложенное, ваш подход в порядке и будет работать, и я не вижу никаких проблем с ним.
Вкл.с другой стороны, ваш код должен быть максимально простым и элегантным.Это важно для поддержки вашего кода вами или вашими товарищами по команде.Вот почему использование таких конструкций, как AddOrUpdate
или других встроенных элементов, является хорошей практикой.Но не закон.
PS Я не смотрю на код вроде { desiredEntity.ValueToModify == 3; }
.Это потенциально плохая практика, так как 3, возможно, следует передать вашему методу в качестве параметра.