我有这个方法可以删除对象(如果存在)并以任何方式插入新实例:
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();
}
}
我有时会遇到表中已存在密钥的异常。
我想知道我保存更改的方式是否有问题(在删除和插入之后保存,而不是在每个之后保存)
当时我遇到异常时,很少有客户端同时激活该方法,我阻止了其他客户端已经在写了,但这可能是问题吗?
谢谢伊兰
_