如何处理Linq to Entity异常(错误)?

时间:2010-06-27 01:19:20

标签: linq-to-entities

处理linq到实体异常的最佳方法是什么?我可以使用try和catch块还是有更好的方法?

1 个答案:

答案 0 :(得分:0)

我们使用了try块来保护我们免遭保存错误。

try{
  using(Context context = new Context()){
     Entity x = context.Entities.First();
     x.ModifyMe = true;
     context.SaveChanges();
   }
 }catch(UpdateException e){
  //convert to friendly message
 }

如果要捕获较低的异常,还会有OptimisticConcurrencyException

我们还采取了一些措施,将SaveChanges包装在一个名为protected save changes的扩展方法中。

public static class Extension{
  public static List<Error> ProtectedSaveChanges(this ObjectContext context){
      try{
        context.SaveChanges();

      }catch(UpdateException e ){
          //Convert to freindly and return
      }
  }

}

不管你信不信,我们决定更进一步,并且有一个特殊的函数,它定义了如何将异常方法转换为更加用户友好的错误。如果你想要那个,请告诉我,我可以发帖。

至于另一种方式,我见过人们使用异常屏蔽(EL),但我不知道是否有任何内置的事件处理程序可以解决错误。