子カテゴリ/ルートカテゴリを持つことができるカテゴリがあります。ルートカテゴリを他のカテゴリに変更しても機能しますが、(ルートカテゴリにするために)設定しようとしてnull
も何も変更されません。それが何か違いを生むなら、私はコードファーストのアプローチを使用しています。
これは私が明示的に述べているコードですcategory.RootCategory = null
が、それは機能しません、ルートカテゴリはまだ以前に設定されたものです。
コントローラ
[HttpPost]
public ActionResult Edit(Category c, int? rootCategoryID)
{
var category = _db.Categories.Where(x => x.ID == c.ID).Single();
if (TryUpdateModel(category))
{
cateogry.RootCategory = null;
_db.SaveChanges();
return Content(Infrastructure.Helpers.SerializeObject(category));
}
return Redirect("/admin/category");
}
モデル
public class Category
{
public int ID { get; set; }
virtual public Category RootCategory { get; set; }
virtual public ICollection<Category> ChildCategories { get; set; }
}
アップデート
非常に奇妙な行動。私がそれをデバッグしてゆっくりとステップバイステップで進むと、それは更新されます。私がそれをデバッグしないか、速く実行しないとき、それは更新されません。なぜそうなのかわかりません。