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