私はEFのアップデートと完全に混乱しています。インターネットで関連するチュートリアルを見つけようとしましたが、何も見つかりませんでした。
私は2つの質問を念頭に置いています。
- 一部のテーブルの特定のフィールドのみを更新する方法。
更新はナビゲーションプロパティでどのように機能しますか?(つまり、エンティティを更新すると、Ef(Linq to Entity)もそのナビゲーションプロパティを更新しますか?)
[Table("master")] public class masterViewModel { [Key,ForeignKey("address")] public int id { get; set; } public string name { get; set; } public string lastName { get; set; } public virtual address address { get; set; } } public class address { [Key] public int id { get; set; } public string city { get; set; } public string state { get; set; }
} つまり、私が自分の見解で私が以下のようなことをした
と仮定します[masterViewModel.id=1 , masterViewModel.name="ABC" and masterViewModel.lastName=null ] [address.id=1 , address.city="xyz" and address.state=null]
@Html.DisplayFor(modelModel => Model.name) @Html.DisplayFor(modelModel => Model.address.city) @Html.HiddenFor(x => x.id)@Html.HiddenFor(x => x.address.id) @Html.EditorFor(modelModel => Model.address.state ) @Html.EditorFor(modelModel => Model.lastName)
名前と文字列のプロパティにDisplayForを使用したため、フォームの投稿時にコントローラーアクションでこれら2つのフィールドの値を取得することはありません。したがって、「state」(アドレスの)プロパティと「lastName」(masterViewModelの)プロパティのみを更新するものが必要です。