类:ConcurrencyCheck注释了RequestStatus列
public class Entity
{
public string TicketNumber { get; set; }
[ConcurrencyCheck]
public string RequestStatus { get; set; }
//Other Properties here
}
我正在使用BulkInsertUpdate EF核心方法将主要实体及其子实体更新为:
protected async Task BulkUpdate(Entity[]] entities, User user)
{
string sessionGUID = Guid.NewGuid().ToString();
Entity entity = entities.Where(f => f.isMainEntity == true).First();
// validations
if (entities.Any(f =>!string.IsNullOrEmpty(f.flag?.Trim()))
{
throw new Exception();
}
// Main Entity
entity.ReviewerId = user.UserId;
entity.status = Entity.status.Value ? true : false;
if (Entity.status.Value)
{
if (true)
{
await this.Queue(sessionGUID)
}
entity.RequestStatus = "Approve"
}
// Related Entities
foreach (Entity relatedEntity in entities.Where(f => f.isMainEntity.Value != true))
{
//Update related Entities properties
}
await this.Uow.Entity.BulkInsertOrUpdate(entities);
}
有时 RequestStatus 列的值在数据库中未更新。但是其他列值每次都会更新。
我正在使用EF核心批量扩展程序进行批量更新,该扩展程序内部具有savechanges方法。