В Entity Framework Code-First, если метод SaveChanges терпит неудачу, потому что он пытается обновить запись, которую пользователь просто удалил на другой машине, как я могу сказать EF, чтобы вставить запись вместо обновления Это?Entity Framework Code-First параллелизм при удалении
0
A
ответ
0
Одним из решений (возможно, не лучшим) является включение кода, который вызывает SaveChanges() внутри блока try/catch. Если возникает исключение, проверьте, была ли эта запись удалена и задано состояние объекта EntityState.Added и снова вызовите SaveChanges.
Как проверить, удалена ли запись? Должен ли я делать это для каждой записи в контексте «транзакции»? –
Я предполагал, что вы пытались обновить одну запись. Возможно, лучший способ справиться с этим сценарием - отметить запись как удаленную (с помощью мягкого удаления), а при обновлении всегда отмечайте delete = false. –
Я думал об этой альтернативе, но это поднимает меня еще больше проблем, мне придется изменить все запросы и включить еще одно предложение Where, я ожидал другого решения. Спасибо, в любом случае :) –