实体框架验证误差未修改实体



这是我的控制器操作:

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。这些错误不是用于"付款"实体,而是用于通过导航属性包含的相关实体。

我不是在修改这些实体,而只是"付款"。那么,我如何获得实体框架以不尝试验证它们或忽略其错误?

我可以创建另一个不包括相关实体的付款视图模型,但这会违反干燥。

如果您希望EF跳过它们,则可以将相关实体明确标记为不变/分离的。

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

最新更新