Необходимо обновить или вставить в параллельный сценарий и гоночные условия, используя EF Core.Единственный способ, который работал, это использовать блоки try try.Больше ничего не получалось.Я знаю, что могу сделать SP, но я хочу только EF ...
Это рабочий код, ничего не сломано, только немного беспорядка ...
var _be = new Models.BackgroundEntry()
{
Id = id,
Datetime = Int64.Parse(first_action.Value<String>("datetime")),
Part = part,
Domain = host,
Session = Guid.Parse(req.session_id),
Action = action.ToString(),
Location = req.location
};
context.BackgroundEntry.Add(_be);
try
{
await context.SaveChangesAsync();
}
catch
{
context.BackgroundEntry.Remove(_be);
_be = await context.BackgroundEntry.FindAsync(id, sessionGuid);
if (_be.Part.Length < part.Length)
{
_be.Part = part;
context.Update(_be);
await context.SaveChangesAsync();
}
}