0
私はモデル患者を持っていますが、そこには0以上のアドレスがリンクされています。エンティティフレームワークのMVC Http Post設定値
私は1つのプライマリアドレスしか必要としないので、編集/作成ポストでは、他のすべての値を 'IsPrimaryAddress'に設定したいと思います。
私は次のコードを書いています。
// POST: /Roles/Create
[HttpPost]
public ActionResult Edit(Address address)
{
using (var context = new WaysToWellnessDB())
{
//if address is primary, make all others not
if (address.IsPrimaryAddress)
{
var addresses = context.Addresses.Where(x => x.IsPrimaryAddress == true && x.AddressId != address.AddressId);
foreach (var item in addresses)
{
item.IsPrimaryAddress = false;
item.UpdatedBy = -1;
item.UpdatedDate = DateTime.Now;
}
}
address.PatientId = Id;
address.UpdatedBy = -1;
address.UpdatedDate = DateTime.Now;
context.Entry(address).State = EntityState.Modified;
context.SaveChanges();
return RedirectToAction("View", "Patient", new { @id = Id });
}
}
しかし、私は次のエラーメッセージ取得しています。同じタイプの別のエンティティが既に同じ主キー値を持っているので、タイプのエンティティをアタッチ
は「WaysToWellness.Address」に失敗しました。
なぜ私はこれを行うことができないのか、なぜそれがエラーを投げるのか説明できますか?
あなたのwhere句 – dotctor
私は少しこれは必要はなかったとして、患者IDを渡していないための方法を変更していた申し訳ありませんが、私が持っているアップデートに 'x.PatientId == Id'条件を追加するのを忘れました元の投稿 – user3284707