我在ASP.NET MVC项目中使用“来自数据库的EF Designer”来获得CRUD功能。
我有很多处理CRUD功能的操作,我希望在调用saveChanges()方法时进行验证,如果抛出任何错误,请尝试捕获。
switch (sh)
{
case 1:
DoThis();
DoThat();
break;
case 2:
{
DoThis();
DoThat();
}break;
case 3:
case 4:
{
DoThis();
DoThat();
}
case 5:
goto case 1;
default:
{
DoThis();
DoThat();
}
}
目前上面的代码在几个动作方法中重复,我想知道是否有更简洁的方法来做这个而不重复相同的代码?这种类型的工作有设计模式吗?
答案 0 :(得分:1)
在您的特定DbContext中,只需覆盖SaveChanges()并执行以下操作:
public class MyDbContext : DbContext
{
...
public override int SaveChanges()
try
{
base.SaveChanges();
}
catch (DbEntityValidationException e)
{
foreach (var eve in e.EntityValidationErrors)
{
Debug.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State);
foreach (var ve in eve.ValidationErrors)
{
Debug.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage);
}
}
}