Les technologies de réflexion et de fonctionnalités fournies par le framework .net peuvent être utilisées pour vérifier la répétabilité des données afin de décider d'écrire ou non un certain élément de données dans la table de la base de données.
Lorsqu'une entité écrit une donnée dans la base de données, il est souvent nécessaire de vérifier si les données sont un doublon, comme une nouvelle personne , en supposant que le numéro d'identification ne peut pas être répété. Si le numéro d'identification du personnel nouvellement créé est dupliqué avec une ou plusieurs entrées dans le tableau du personnel, des invites doivent être données ou d'autres mesures doivent être prises, telles que la mise à jour ou la suppression.
Dans ce scénario de demande, vous pouvez utiliser les fonctionnalités et la technologie de réflexion fournies par le framework .net pour résoudre ces besoins. Le processus spécifique,
Deuxièmement, se référer à la classe de fonctionnalités nouvellement écrite dans la classe d'entité pour construire son identifiant unique (une ou plusieurs combinaisons d'attributs
Enfin, Lors de la vérification de la duplication des données, utilisez la méthode fournie par Attribute pour obtenir l'attribut d'identification unique (un ou plusieurs) de chaque classe d'entité.
Classe étendue, voici le suffixe Attribute dans KeyFieldAttribute, qui peut être omis, donc KeyField est une abréviation, équivalente à KeyFieldAttribute. Attribute[] GetCustomAttributes(modeltype, inherit);
Utiliser la classe d'entités : Utilisez la combinaison d'attributs clés renvoyée par la fonctionnalité pour interroger les données dans la base de données. Si au moins un enregistrement peut être trouvé, il sera traité en conséquence. selon une certaine logique ; sinon, vous pouvez écrire de nouvelles données directement. Description de la méthode fournie dans la classe Attribute :
public class KeyFieldAttribute:Attribute { private static List<string> keyfields = new List<string>(); /// <summary> /// 构造关键属性 /// </summary> /// <param name="fields"></param> public KeyFieldAttribute(params string[] fields) { foreach (string kf in fields) { if (!keyfields.Contains(kf)) keyfields.Add(kf); } } public static List<string> KeyFields { get { return keyfields; } } }
[KeyField("ID")]public class Person { public int ID {get;set;} //人员ID public string Name {get;set;}//人员名称 public DateTime BirthDate {get;set;} //出生年月日} [KeyField("RoleGroupID","RoleCode")] public class Role { public int RoleGroupID { get; set; } //角色组别ID public string RoleCode { get; set; } //角色编号 public string RoleName { get; set; }//角色名称 }