0

我有这个方法可以删除对象(如果存在)并以任何方式插入新实例:

  internal void SaveCarAccident(WcfContracts.BLObjects.Contract.Dtos.CarAccident DTOCarAccident)
    {                       
         using(var context = BLObjectsFactory.Create())
        {
            context.ContextOptions.ProxyCreationEnabled = false;
            CarAccident NewCarAccident = ConvertToCarAccident(DTOCarAccident);
            CarAccident carFromDB = context.CarAccident.FirstOrDefault(current => current.CarAccidentKey.Equals(NewCarAccident.CarAccidentKey));
            if(carFromDB != null)
                context.CarAccident.DeleteObject(carFromDB);
            context.CarAccident.AddObject(NewCarAccident);
            context.SaveChanges();
        }
    }

我有时会遇到表中已存在密钥的异常。
我想知道我保存更改的方式是否有问题(在删除和插入之后保存,而不是在每个之后保存)
当时我遇到异常时,很少有客户端同时激活该方法,我阻止了其他客户端已经在写了,但这可能是问题吗?
谢谢伊兰
_

4

0 回答 0