【发布时间】:2022-06-15 01:21:23
【问题描述】:
我有一个问题,我想在sql server引发异常后继续插入数据。
我在表中的 3 个不同列上获得了唯一索引以检测重复。
例如,我试图插入 2 个结果,第一个是重复的,第二个不是。
当检测到重复时,它会进入 Catch 然后我什么也不做,但是当它出现在不是重复的第二个 Result 上时,会再次为前一个 Result 引发异常。
我的代码在这里:
public async Task<IEnumerable<Result>> Handle(NewResultCommandDTO requests, CancellationToken cancellationToken) {
var results = new List<Result>();
...
for (var j = 0; j < resultDetails.Count(); j++)
{
var rd = resultDetails.ElementAt(j);
var newResult1 = new Result
{
AthleteFEIID = rd.AthleteFEIID,
CompetitionCode = competition.CompetitionCode,
HorseId = horse.Id,
};
results.Add(newResult1);
try
{
await _resultsService.AddResultAsync(newResult1);
await _resultsService.CompleteAsync();
}
catch (Exception ex) {
var x = ex;
}
}
}
}
public async Task AddResultAsync(Result result)
{
Context.Results.AddAsync(result);
}
public async Task CompleteAsync()
{
await Context.SaveChangesAsync().ConfigureAwait(false);
}
感谢您的帮助!
【问题讨论】:
标签: c# sql-server entity-framework