Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架-StateModel的响应验证错误_C#_Entity Framework - Fatal编程技术网

C# 实体框架-StateModel的响应验证错误

C# 实体框架-StateModel的响应验证错误,c#,entity-framework,C#,Entity Framework,我有一个web api方法,可以在数据库中创建/插入新实体: [HttpPost] [Route("object/create")] public HttpResponseMessage CreateNewObject([FromBody]MyObject object) { try{ MyService service = new MyService(); service.createObject(object); }catch (DbEntit

我有一个web api方法,可以在数据库中创建/插入新实体:

[HttpPost]
[Route("object/create")]
public HttpResponseMessage CreateNewObject([FromBody]MyObject object)
{
    try{
        MyService service = new MyService();
        service.createObject(object);
    }catch (DbEntityValidationException ex){
        return this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Validation Erros occured");
    }
}
service.createObject(object)
读取外键,仔细检查外键是否有效,并加载/添加外部实体以完成对象实体。然后调用
context.saveChanges()
。如果出现验证错误,将抛出
DbEntityValidationException

public Object createObject(Object object){
    object.foreignObject = context.foreignObjects.where(e => e.id == object.foreignObject.id).First();
    context.Objects.Add(object);
    context.saveChanges();
}
到目前为止还不错。有了这个设置,问题是我只响应“发生了验证错误”,这在前端是不可处理的


所以我的问题是,如果有任何方法可以将
DbEntityValidationException
解析为可以响应的
ModelState

您可以在catch块中提取您需要的所有信息,并以您想要呈现的格式返回它作为响应。

确定。这听起来好像没有“标准”或“默认”方法?我希望有类似ModelState的东西,这样我就不需要手动完成所有这些工作:(ModelState是一个MVC概念,所以它在WebAPI中不可用(而且
CreateNewObject
看起来像一个WebAPI操作方法)。