Jin*_*ter 16 c# entity-framework entity-framework-core asp.net-core asp.net-core-2.0
我用EF6和我的Base存储库Save()看起来像这样
public void Save()
{
try
{
Context.SaveChanges();
}
catch (DbEntityValidationException ex)
{
//Do Stuff
}
catch (Exception exception)
{
//Do stuff.
}
else
{
throw;
}
}
Run Code Online (Sandbox Code Playgroud)
DbEntityValidationException如果对象保存无效,则是EF的预期错误.现在我正在使用新的.NET Core 2项目,我需要知道EF Core中的预期实体验证错误类型是什么.
Kir*_*kin 24
通过Github问题,DbEntityValidationException实体框架核心中没有相应的内容.有一个博客(链接自Github上的问题#9662),它提供了一个代码示例,用于自己执行验证逻辑,此处包含完整性:
class MyContext : DbContext
{
public override int SaveChanges()
{
var entities = from e in ChangeTracker.Entries()
where e.State == EntityState.Added
|| e.State == EntityState.Modified
select e.Entity;
foreach (var entity in entities)
{
var validationContext = new ValidationContext(entity);
Validator.ValidateObject(entity, validationContext);
}
return base.SaveChanges();
}
}
Run Code Online (Sandbox Code Playgroud)
Validator.ValidateObject将抛出ValidationExceptionif验证失败,您可以相应地处理.
如果您遇到验证属性问题,链接问题中会有更多信息.
| 归档时间: |
|
| 查看次数: |
11667 次 |
| 最近记录: |