1. 程式人生 > >MVC5中Model層開發數據註解

MVC5中Model層開發數據註解

mode 數據庫 model splay rip sage none 在服務器 類型

ASP.NET MVC5中Model層開發,使用的數據註解有三個作用:

  1. 數據映射(把Model層的類用EntityFramework映射成對應的表)
  2. 數據驗證(在服務器端和客戶端驗證數據的有效性)
  3. 數據顯示(在View層顯示相應的數據)

數據註解相關的命名空間如下:

  • System.ComponentModel.DataAnnotations
  • System.ComponentModel.DataAnnotations.Schema
  • System.Web.Mvc
  • System.Web.Security

DataAnnotations名稱空間中包含主要的數據註解,Schema名稱空間中包含一些數據映射的數據註解,Mvc名稱空間中包含字符、數組、數值長度和屬性比較的數據註解,Security名稱空間中包含MemberShipPassword註解特性。

數據映射和驗證相關的數據註解:

[Required] 必填字段
[MaxLength] 指定屬性中允許的數組或字符串數據的最大長度
[MinLength] 指定屬性中允許的數組或字符串數據的最小長度
[StringLength] 指定最小和最大字符長度
[Range] 指定數值範圍

數據驗證相關的數據註解

[Remote] 使用 jQuery 驗證插件遠程驗證程序的特性
[FileExtension] 驗證文件擴展名
[Compare] 比較兩個屬性的值
[RegularExpression] 使用正則表達式驗證
[CustomValidation] 自定義驗證方法
[DataType] 指定要與數據字段關聯的附加類型的名稱
[EmailAddress] 電子郵件地址(相當於[DataType(DataType.Email)])
[Phone] 電話(同上)
[CreditCard] 信用卡號碼(同上)
[Url] 驗證URL(同上)
[MemberShipPassword] 驗證密碼字段是否滿足成員資格提供程序的當前密碼要求

數據映射相關的數據註解:

[Key] 主鍵字段
[Column] 數據庫列屬性映射
[NotMapped] 不要創建對應的字段
[Table] 指定類將映射到的數據庫表
[ForeignKey] 表示關系中用作外鍵的屬性
[DatabaseGenerated] 指定數據庫生成屬性值的方式(EF不追蹤屬性的變化)

數據顯示相關的數據註解:

[DisplayName] 指定本地化的字符串(習慣用語類)
[Display] 指定本地化的字符串(習慣用語屬性)
[DisplayFormat] 設置數據字段的格式
[ReadOnly] 指定該特性所綁定到的屬性是只讀屬性還是讀/寫屬性
[EditAble] 指示數據字段是否可編輯
[HiddenInput] 指示是否應將屬性值或字段值呈現為隱藏的 input 元素
[ScaffoldColumn] 指定類或數據列是否使用基架
[UIHint] 指定動態數據用來顯示數據字段的模板

其他

[DisplayColumn] 將所引用的表中顯示的列指定為外鍵列
[Description]

可視化設計器在引用組件成員時可以顯示指定的說明

(命名空間:System.ComponentModel.DescriptionAttribute)

1、數據驗證相關的數據註解繼承ValidationAttribute類,都有一個ErrorMessage屬性用來顯示錯誤提示。

如:[Required(ErrorMessage="此項不能為空")]。

2、數據映射中Int類型和DateTime類型在數據庫中默認不允許為NULL,如果需要設置為NULL,使用可空類型即可(使用Int?或者DateTime?)。

MVC5中Model層開發數據註解