/// <要約> /// 作成:江Yunfeng /// 日:2019年12月23日 /// 説明:更新エンティティ、データベースエンティティと比較 /// </要約> パブリック クラスJyfUpdateModel { /// <まとめ> /// このプロパティはNEWOBJ値でない場合dataBaseObj NEWOBJは、同じ属性名を有する場合、属性値はdataBaseObj NEWOBJに割り当てられ、このプロパティ ///は、主に原稿のうち空に防止するために、更新するために使用されますいくつかのデータが /// </要約> /// <PARAM NAME = "dataBaseObj"> EFクエリデータベース得られたモデル</ param>の /// <PARAM NAME = "NEWOBJ"> 自動的にフォームがアクションに提出され、フレームワーク内部で作成したモデルのフォームフィールド</ param>の 公共の 静的な 無効 UPDATEMODEL(オブジェクト dataBaseObj、オブジェクトNEWOBJ) { 型t = dataBaseObj.GetType(); // 3.2.3取得すべてのエンティティと公共財産??? 一覧<PropertyInfo> propertyInfos = t.GetProperties(BindingFlags.Instance | BindingFlags.Public)。 ToListメソッド(); // 3.2.4は、エンティティ属性辞書コレクション???作成 辞書< 文字列、PropertyInfo> dicPropertys = 新しい新しい辞書< 文字列、PropertyInfo> () // プロパティを変更したい3.2.5エンティティ属性の名前を? ???コレクション辞書キーに追加:属性名??値:属性オブジェクト?? propertyInfos.ForEach(P => { dicPropertys.Add(p.Name、P)。 }); タイプT2 item.SetValue(NEWOBJ、dicPropertys [item.Name]以降.getvalue(dataBaseObj))。 = newObj.GetType()。 foreachの(VARの項目で t2.GetProperties(BindingFlags.Instance | BindingFlags.Public).ToList()) { 場合(dicPropertys.Keys.Contains(item.Name)) { 試み { 場合(item.GetValue(NEWOBJ)== nullを && dicPropertys [item.Name]以降.getvalue(dataBaseObj)!= NULL ) { } } キャッチ(例外例) { スロー。 } } } } }