Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.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# 未修改实体上的实体框架验证错误_C#_Asp.net Mvc_Entity Framework_Automapper - Fatal编程技术网

C# 未修改实体上的实体框架验证错误

C# 未修改实体上的实体框架验证错误,c#,asp.net-mvc,entity-framework,automapper,C#,Asp.net Mvc,Entity Framework,Automapper,以下是我的控制器操作: public JsonResult Add(Mod.Payment payment) { if (ModelState.IsValid) { Ent.Payment paymentEnt = new Ent.Payment(); Mapper.Map(payment, paymentEnt); db.Payments.Add(paymentEnt); db.SaveChanges();

以下是我的控制器操作:

public JsonResult Add(Mod.Payment payment)
{
    if (ModelState.IsValid)
    {
        Ent.Payment paymentEnt = new Ent.Payment();
        Mapper.Map(payment, paymentEnt);
        db.Payments.Add(paymentEnt);
        db.SaveChanges();
        return Payment(paymentEnt.PaymentId);
    } else
    {
        Response.StatusCode = (int)HttpStatusCode.BadRequest;
        return Json(new { Message = "Not OK" });
    }

}
db.SaveChanges触发EntityValidationErrors。错误不针对“paymentEnt”实体,而是针对包含在付款视图模型中的相关实体以及通过导航属性显示的实体

我不是在修改那些实体,只是在修改“paymentEnt”。那个么,我怎样才能让实体框架不去尝试验证它们或者忽略它们的错误呢


我可以创建另一个不包括相关实体的支付视图模型,但这将违反DRY

如果要跳过相关实体,可以将其显式标记为未更改/分离:

db.Entry(paymentEnt.RelatedEntity).State = System.Data.Entity.EntityState.Unchanged;

@ashin的回答奏效了,所以我认为这已经结束了。我本应该包含更多的代码,但代码太多了,我希望尽可能简洁。但谢谢你的参与。