2010-04-16 3 views
0

J'ai fait pas mal de recherches mais je n'ai pas encore trouvé un moyen facile de valider les entités EntityFramework 4.0 passées à travers le réseau via les services de données WCF. Au fond, je veux faire quelque chose sur le client comme:Quelle est la meilleure façon de valider les classes EntityFramwork 4.0?

 Proxy.MyEntities entities = new Proxy.MyEntities(
      new Uri("http://localhost:2679/Service.svc")); 

     Proxy.Vendor vendor = new Proxy.Vendor(); 

     vendor.Code = "ABC/XYZ"; 
     vendor.Status = "ACTIVE"; 

     // I'd like to do something like the following: 
     vendor.Validate(); 

     entities.AddToVendors(vendor); 

     entities.SaveChanges(); 

Toute aide à cet égard serait grandement apprécié!

Répondre

0

Si j'étais vous, j'utiliserais le framework System.ComponentModel.DataAnnotations.

Il existe de nombreux exemples sur le Web pour cela.

Vous pouvez utiliser ValidationAttributes comme requis, plage, etc. et créer votre propre attribut pour effectuer une validation personnalisée.

Voir ci-dessous comment valider une entité.

Type objectType = entity.GetType(); 

Dictionary<string, string> errors = new Dictionary<string, string>(); 

foreach (PropertyInfo propertyInfo in objectType.GetProperties().Where(w => w.CanRead)) 
{ 
    object value = propertyInfo.GetValue(entity, null); 

    foreach (ValidationAttribute validator in propertyInfo.GetCustomAttributes(typeof(ValidationAttribute), false)) 
    { 
     if (!validator.IsValid(value)) 
     { 
      errors.Add(propertyInfo.Name, validator.ErrorMessage); 
     } 
    } 
} 

J'espère que cela aide si vous besoin d'autre chose il suffit de demander

Regard

Daniel

Questions connexes