сообщение имеет внешний идентификатор (идентификатор на стороне клиента), 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