私のモデルのいずれかをEntityState.Modifiedで更新する際に問題があります。ナビゲーションプロパティ(これは変更しません)を更新しようとしています。EntityState.Nodificationプロパティを更新せずに変更しました
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Rooms([Bind(Include = "ID,BedroomCount,BedroomsDescription,BathroomCount,BathroomsDescription")] Property property)
{
if (ModelState.IsValid)
{
//Modify property
property.DateModified = DateTime.Now;
property.Status = 1;
db.Entry(property).State = EntityState.Modified;
await db.SaveChangesAsync();
return RedirectToAction("Index");
}
return View(property);
}
など、私のモデルはなります:私のコントローラのアクションがあるあなたが見ることができるように、私は私のViewModelからのもの(バスルームとベッドルームの数など)の束を結合
public class Property
{
public int ID { get; set; }
public Int16 BedroomCount { get; set; }
public string BedroomsDescription { get; set; }
public Int16 BathroomCount { get; set; }
public string BathroomsDescription { get; set; }
public int CommunityID { get; set; }
public int PropertyTypeID { get; set; }
public virtual Community Community { get; set; }
public virtual PropertyType PropertyType { get; set; }
}
、しかし、私は思いますすべてのナビゲーションプロパティ「コミュニティ」を修正するが、私は、このアクションメソッドに投稿するたびに、私は次のエラーを取得しませ:
The UPDATE statement conflicted with the FOREIGN KEY constraint "FK_dbo.Property_dbo.Community_CommunityID". The conflict occurred in database "MyDatabase", table "dbo.Community", column 'ID'. The statement has been terminated.
私はそれが外部キーを更新しようとせずに、このモデルを更新することができますどのように?どこでも答えが見つかりません
私はこの問題に直面しています。私はproperty.Community = nullを使用して解決しました。私はそれが恒久的な修正ではないことを知っていますが、私も答えを見つけることができませんでした –
ええ、残念ながら私はnullとして私のコミュニティをしたくありません。今私はそれも私のビューモデルからも渡すことができますが、変更する必要はないので実際には不要です。 – Gavin5511
私の場合は、エンティティ固有のデータアクセスから自分のエンティティを更新していました。子を更新するための呼び出しを知ることはできません。 –