2017-06-04 14 views
0

を変更されていないここに私のコントローラのアクションです:Entity Frameworkの検証エラーが

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」のみです。 Entity Frameworkを検証したり、エラーを無視したりしないようにするにはどうすればよいですか?

関連するエンティティを除外する別の支払いビューモデルを作成することはできますが、それはDRYに違反します。

+0

働いたので、私はこれが閉じて検討しています。私はコードをもっと含んでいただろうが、たくさんあり、できるだけ簡潔にしたいと思った。しかし、魅力的に感謝します。 –

答えて

1

変更なし/戸建としてあなたはEFがそれらをスキップしたい場合は、明示的に、関連エンティティをマークすることができます:アッシンの応答@

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

ありがとうございました。 –

関連する問題