Silverlight WCF RIA服务(十三)数据 3
生活随笔
收集整理的這篇文章主要介紹了
Silverlight WCF RIA服务(十三)数据 3
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如何驗證數據 我們對實體和成員屬性添加驗證屬性來實施驗證規則。WCF RIA Service提供了幾個驗證屬性來執行常用的驗證檢測,還提供了CustomValidationAttribute屬性來執行自定義的驗證檢測。 如何驗證數據
我們對實體和成員屬性添加驗證屬性來實施驗證規則。WCF RIA Service提供了幾個驗證屬性來執行常用的驗證檢測,還提供了CustomValidationAttribute屬性來執行自定義的驗證檢測。
在RIA Service中包含了如下的驗證屬性:
為實體類添加一個元數據類,可以參考上一節內容。 對想要驗證的實體或成員屬性,添加驗證屬性來執行驗證。下面的例子示例如何對一個名字為Address1的成員屬性添加驗證。
?
? 生成解決方案。 在silverlight的應用項目中,打開Generated_Code文件下的代碼文件,注意到在客戶端代碼中也應用了驗證屬性。 對實體類添加一個元數據類。 添加一個共享代碼文件,以*.shared.cs命名。這個文件將會包含一個自定義驗證對象。 添加一個方法來判斷是否數據有效。這個方法必須是public和static,還必須返回一個ValidationResult來表示驗證的結果。下面示例是一個有名為IsProductValid方法的ProductValidator類,這個方法驗證一個Product實體。
?
? 對象要驗證的實體或成員屬性,添加[CustomValidationAttribute]批注屬性,并傳遞驗證對象和執行驗證的方法的名字。下面的示例顯示了對一個實體應用[CustomValidation]屬性,驗證對象的類型是 ProductValidator,驗證方法的名字是 IsProductValid。
?
? 生成解決方案。 在Silverlight客戶端,打開Generated_Code文件夾下的文件。注意到在共享代碼中CustomValidationAttribute應用到了實體上。
我們對實體和成員屬性添加驗證屬性來實施驗證規則。WCF RIA Service提供了幾個驗證屬性來執行常用的驗證檢測,還提供了CustomValidationAttribute屬性來執行自定義的驗證檢測。
在RIA Service中包含了如下的驗證屬性:
- DataTypeAttribute
- RangeAttribute
- RegularExpressionAttribute
- RequiredAttribute
- StringLengthAttribute
我們在服務端添加驗證屬性,這些屬性會傳遞給生成的客戶端實體。在運行時,這些驗證規則會應用到客戶輸入的數據上。我們必須通過添加元數據類來添加這些驗證屬性。
添加一個驗證屬性
?
| 1 2 3 4 5 | [Required] [StringLength(60)] public?string?AddressLine1; |
?
添加自定義驗證屬性
?
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public?class?ProductValidator { ????public?static?ValidationResult IsProductValid(Product productToValidate, ValidationContext context) ????{ ????????if?(productToValidate.ListPrice < ((decimal).8 * productToValidate.StandardCost)) ????????{ ????????????return?new?ValidationResult("ListPrice is below 80 percent of StandardCost."); ????????} ????????else ????????{ ????????????return?ValidationResult.Success; ????????} ????} } |
?
?
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | [CustomValidation(typeof(RIAServicesExample.Web.SharedCode.ProductValidator),"IsProductValid")] [MetadataTypeAttribute(typeof(Product.ProductMetadata))] public?partial?class?Product { ????internal?sealed?class?ProductMetadata ????{ ????????// Metadata classes are not meant to be instantiated. ????????private?ProductMetadata() ????????{ ????????} ????????public?string?Color; ????????public?Nullable<DATETIME> DiscontinuedDate; ????????public?decimal?ListPrice; ????????public?DateTime ModifiedDate; ????????public?string?Name; ????????public?Nullable<INT> ProductCategoryID; ????????public?int?ProductID; ????????public?Nullable<INT> ProductModelID; ????????public?string?ProductNumber; ????????public?Guid rowguid; ????????public?Nullable<DATETIME> SellEndDate; ????????public?DateTime SellStartDate; ????????[Required()] ????????[StringLength(20)] ????????public?string?Size; ????????public?decimal?StandardCost; ????????public?byte[] ThumbNailPhoto; ????????public?string?ThumbnailPhotoFileName; ????????public?Nullable<DECIMAL> Weight; ????} } |
?
轉載于:https://www.cnblogs.com/Areas/archive/2011/09/09/2172169.html
總結
以上是生活随笔為你收集整理的Silverlight WCF RIA服务(十三)数据 3的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用css制作三角,兼容IE6,用到的标
- 下一篇: DataDirectory是什么?