/// <summary> /// Créé: Jiang Yunfeng /// Date: 23/12/2019 /// Description: mise à jour, les entités par rapport à une entité de base de données /// </ Résumé> publique classe JyfUpdateModel { /// <Sommaire> /// quand dataBaseObj newobj ayant le même nom d'attribut, si cette propriété est pas de valeur newobj, la valeur d'attribut est attribué dans dataBaseObj newobj cette propriété /// est principalement utilisé pour la mise à jour, afin d' éviter la vidange de l'original certaines données /// </ summary> /// <param name = "dataBaseObj"> EF requête la base de données obtenue le modèle </ param> /// <param name = "newobj"> lorsque le formulaire est soumis à l'action, cadre automatiquement les champs de formulaire modèle créé à l' intérieur </ param> publique statique vide updateModel (Objet dataBaseObj, objet newobj) { type t = dataBaseObj.GetType (); // 3.2.3 Obtenir toutes les entités et des biens publics ??? Liste <PropertyInfo> propertyInfos = t.GetProperties (BindingFlags.Instance | BindingFlags.Public). ToList (); // 3.2.4 Création d' une collection de dictionnaire d'attribut d'entité ??? le dictionnaire < chaîne , PropertyInfo> dicPropertys = new new Dictionnaire < chaîne , PropertyInfo> (); // 3.2.5 le nom d'attribut de l' entité que vous souhaitez modifier les propriétés? ? ?? collection ajoutée aux clés de dictionnaire: nom d'attribut ?? valeur: objet attribut ?? propertyInfos.ForEach (P => { dicPropertys.Add (p.Name, p); }); Tapez t2 item.SetValue (newobj, dicPropertys [item.Name] .GetValue (dataBaseObj)); = newObj.GetType (); foreach ( var article à t2.GetProperties (BindingFlags.Instance | BindingFlags.Public) .ToList ()) { si (dicPropertys.Keys.Contains (item.Name)) { try { si (item.GetValue (newobj) == null && dicPropertys [item.Name] .GetValue (dataBaseObj)! = null ) { } } captures (Exception ex) { jeter ; } } } } }