SQL позволяет вставлять повторяющиеся данные, когда две вставки выполняются почти одновременно.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 SQL позволяет вставлять повторяющиеся данные, когда две вставки выполняются почти одновременно.

Сообщение Anonymous »

Контекст: у меня есть приложение в Azure, которое получает информацию от нескольких клиентов, однако иногда клиент отправляет несколько сообщений одновременно, что приводит к дублированию записей в моей базе данных.
сообщение имеет внешний идентификатор (идентификатор на стороне клиента), customerId (идентификатор клиента) и еще один подобъект с некоторыми значениями (например: высота, цена и т. д.).
Каждое изменение, внесенное пользователем в этот объект или его подобъект, на наш сервер отправляется сообщение. Этими изменениями могут быть: создание, редактирование и исключение. Но иногда пользователь повторно отправляет это сообщение, что в некоторых случаях создает на моей стороне вторую регистрацию.
Теперь я провожу проверки, чтобы избежать этого:

Код: Выделить всё

var FoundCustomer = _dataContext.Customer
.Where(x => x.CustomerId == message.customerId)
.SingleOrDefault();

if (FoundCustomer != null)
{
var Order = _dataContext.Order
.Where(x => x.Customer == FoundCustomer)
.SingleOrDefault(x => x.ExternalId == message.externalId);

if (Order == null)
{
var OrderNew = new Order
{
Externalid = message.externalId,
Customer = FoundCustomer
};

await _dataContext.Order.AddAsync(OrderNew);
await _dataContext.SaveChangesAsync();
}
}
Но почему-то дубликаты все равно случаются, как будто его не удалось найти.
Я что-то упустил?

Подробнее здесь: https://stackoverflow.com/questions/787 ... almost-the
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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