Для обновления записей вместо того, чтобы запрашивать контекст и обновлять каждую запись по отдельности, в настоящее время мы используем код, который выполняет DeleteAllOnSubmit для существующего набора строк и InsertAllOnSubmit для нового набора строк.Это работало нормально для большинства наших сценариев, так как если одна и та же строка (содержимое) вставляется / удаляется, она удаляется, даже если у нас есть вставка и удаление в наборе изменений.Кроме того, если первичный ключ один и тот же, а записи имеют разное содержимое, он преобразует его в одно обновление.Проблема, с которой мы сталкиваемся, заключается в совпадении первичного ключа без учета регистра, как, например, 'abc' и 'Abc'. Linq считает, что это разные ключи, а затем пытается сначала выполнить вставку, а затем удалить, а затем удалить, что не удается из-за первичного ключанарушение, поскольку для наших настроек базы данных оба первичных ключа считаются равными.Есть ли способ, по которому мы могли бы заставить Linq использовать сравнение без учета регистра, когда оно определяет обновление по вставкам и удаляет в ChangeSet?
Я знаю, что другим способом будет запрос к базе данных, и еслизапись присутствует, сделайте обновление вместо вставки и удаления.Но у нас есть эта логика для нескольких объектов, и мы хотели бы посмотреть, есть ли другие варианты, которые работают.
Спасибо за ответы.
Позвольте мне попытаться объяснить проблему, которую мы имеем, на примере.
Допустим, у нас есть две таблицы: банк и филиал, в котором банк может иметь несколько филиалов.
Мыдан набор ветвей, которые нужно установить в таблице.Таким образом, логика будет состоять в том, чтобы удалить все филиалы для этого банка и установить для него тот набор филиалов, который у нас есть.
Текущий код, который мы имеем, делает что-тоОбновите маршрут, для каждой ветви, мы должны увидеть, существует ли она в dest, затем изменить ее свойства, если не вставить ее, и, наконец, если какая-либо ветвь dest не входит в набор ветвей, удалить ее.У нас есть много таблиц, в которых необходимо внести это изменение.