Joh*_*ski 2 c# entity-framework exception-handling exception try-catch
这样做是否可以接受?首先尝试添加实体.如果添加失败,则无关紧要,因为这意味着实体已存在?
或者是否有更优雅/简单的解决方案?
EntityFrameworkEntities dal = EntityDataModelHelper.GetEntityDataModel();
try
{
dal.AddToXXXXXX(xxxxxxx);
}
catch
{
}
try
{
dal.SaveChanges();
return true;
}
catch
{
return false;
}
Run Code Online (Sandbox Code Playgroud)
好吧,我把它缩短为......
EntityFrameworkEntities dal = EntityDataModelHelper.GetEntityDataModel();
if(xxxxxxx.ID == 0)
{
dal.AddToXXXXXX(xxxxxxx);
}
try
{
dal.SaveChanges();
return true;
}
catch
{
return false;
}
Run Code Online (Sandbox Code Playgroud)
这样做肯定不行.C#中没有类型的catch语句意味着"捕获任何标准或非标准异常".但你的意图是防止重复添加.添加可能由于各种原因而失败,这些原因并不表示现有条目.例如,该方法可以抛出空引用,并假设它已添加.
如果要检查重复添加,则必须仅捕获为重复添加引发的异常.