2010-04-16 78 views
0

我已經做了大量的搜索,但我還沒有找到一個簡單的方法來驗證通過WCF數據服務通過線路傳遞的EntityFramework 4.0實體。基本上,我想在客戶端上做些什麼,如:什麼是驗證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(); 

任何幫助,在這方面將不勝感激!

回答

0

如果我是你,我會使用System.ComponentModel.DataAnnotations框架。

網上有很多例子。

您可以使用ValidationAttributes像所需的範圍等,並創建自己的屬性來執行自定義驗證。

查看下面如何驗證實體。

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); 
     } 
    } 
} 

我希望這可以幫助,如果你需要什麼就問

方面

丹尼爾