Я думаю, будет лучше, если вы предотвратите исключение.Если это возможно с вашим кодом, я бы сделал следующее:
При использовании Entity Framework лучше всего сначала попытаться получить запись, которая вызовет у вас проблемы, с SingleQrDefault LINQ.Теперь вы можете обновить полученный объект с помощью экземпляра, который вы хотите вставить, и сохранит ваш ID-номер с автоматическим приращением, если вы его используете.Если SingleOrDefault имеет значение null, вы можете безопасно добавить свою сущность.
пример кода:
public override void AddOrUpdate(CustomCaseSearchCriteria entity)
{
var duplicateEntityCheck = GetSingleByUniqueConstraint(entity.UserCode, entity.FilterName);
if (duplicateEntityCheck != null)
{
duplicateEntityCheck.Overwrite(entity);
base.Update(duplicateEntityCheck);
}
else
base.Add(entity);
}
public virtual CustomCaseSearchCriteria GetSingleByUniqueConstraint(string userCode, string filterName)
{
return GetAllInternal().SingleOrDefault(sc => sc.UserCode == userCode && sc.FilterName == filterName);
}