https://www.cnblogs.com/leoxuan/articles/6555396.html
ASP.NET MVC5中Model層開發,使用的數據註解有三個做用:html
數據映射(把Model層的類用EntityFramework映射成對應的表)
數據驗證(在服務器端和客戶端驗證數據的有效性)
數據顯示(在View層顯示相應的數據)
數據註解相關的命名空間以下:正則表達式
System.ComponentModel.DataAnnotations
System.ComponentModel.DataAnnotations.Schema
System.Web.Mvc
System.Web.Security
DataAnnotations名稱空間中包含主要的數據註解,Schema名稱空間中包含一些數據映射的數據註解,Mvc名稱空間中包含字符、數組、數值長度和屬性比較的數據註解,Security名稱空間中包含MemberShipPassword註解特性。數據庫
數據映射和驗證相關的數據註解:數組
[Required] 必填字段
[MaxLength] 指定屬性中容許的數組或字符串數據的最大長度
[MinLength] 指定屬性中容許的數組或字符串數據的最小長度
[StringLength] 指定最小和最大字符長度
[Range] 指定數值範圍服務器
數據驗證相關的數據註解:app
[Remote] 使用 jQuery 驗證插件遠程驗證程序的特性
[FileExtension] 驗證文件擴展名
[Compare] 比較兩個屬性的值
[RegularExpression] 使用正則表達式驗證
[CustomValidation] 自定義驗證方法
[DataType] 指定要與數據字段關聯的附加類型的名稱
[EmailAddress] 電子郵件地址(至關於[DataType(DataType.Email)])
[Phone] 電話(同上)
[CreditCard] 信用卡號碼(同上)
[Url] 驗證URL(同上)
[MemberShipPassword] 驗證密碼字段是否知足成員資格提供程序的當前密碼要求ui
數據映射相關的數據註解:插件
[Key] 主鍵字段
[Column] 數據庫列屬性映射
[NotMapped] 不要建立對應的字段
[Table] 指定類將映射到的數據庫表
[ForeignKey] 表示關係中用做外鍵的屬性
[DatabaseGenerated] 指定數據庫生成屬性值的方式(EF不追蹤屬性的變化)設計
數據顯示相關的數據註解:orm
[DisplayName] 指定本地化的字符串(習慣用語類)
[Display] 指定本地化的字符串(習慣用語屬性)
[DisplayFormat] 設置數據字段的格式
[ReadOnly] 指定該特性所綁定到的屬性是隻讀屬性仍是讀/寫屬性
[EditAble] 指示數據字段是否可編輯
[HiddenInput] 指示是否應將屬性值或字段值呈現爲隱藏的 input 元素
[ScaffoldColumn] 指定類或數據列是否使用基架
[UIHint] 指定動態數據用來顯示數據字段的模板
其餘
[DisplayColumn] 將所引用的表中顯示的列指定爲外鍵列
[Description]
可視化設計器在引用組件成員時能夠顯示指定的說明
(命名空間:System.ComponentModel.DescriptionAttribute)
一、數據驗證相關的數據註解繼承ValidationAttribute類,都有一個ErrorMessage屬性用來顯示錯誤提示。
如:[Required(ErrorMessage="此項不能爲空")]。
二、數據映射中Int類型和DateTime類型在數據庫中默認不容許爲NULL,若是須要設置爲NULL,使用可空類型便可(使用Int?或者DateTime?)。
初學ASP.NET MVC順便總結了一下數據註解(並不包含全部的內置數據註解),每一個數據註解的具體使用請查詢MSDN,不當的地方望指正。