原文地址:http://www.entityframeworktutorial.net/code-first/dataannotation-in-code-first.aspxhtml
EF 6 Code-First系列文章目錄:數據庫
數據註解特性是.NET特性,能夠在EF或者EF Core中,應用於實體類上或者屬性上,以重寫默認的約定規則。app
在EF 6和EF Core中,數據註解特性包含在System.ComponentModel.DataAnnotations命名空間和System.ComponentModel.DataAnnotations.Schema命名空間下。ide
這些特性不單單適用於EF,一樣適用於ASP.NET MVC以及數據控件。數據註解特性,在EF 6和EFCore中工做方式都是相同的、效用同樣的。學習
特性 | 描述 |
Key | 應用於實體的一個屬性上,而後就生成表裏面的主鍵 |
Timestamp | 應用於實體的一個屬性上,而後生成表的列的類型就是RowVersion |
ConcurrencyCheck | 應用的屬性上,而後相應的列就會生成一個樂觀檢查 |
Required | 應用的屬性上面,生成一個不爲空的列,而後映射到數據庫的列中 |
MinLength | 定義最小字符串長度,而後映射到數據庫的列中 |
MaxLength | 定義最大字符串長度,而後映射到數據庫的列中 |
StringLength | 能夠指定屬性列容許的最大字符串長度,而後映射到數據庫的列中 |
System.ComponentModel.DataAnnotations.Schema Attributes測試
特性 | 描述 |
Table | 應用於實體,能夠配置表名和模式名 |
Column | 應用於實體的屬性上,能夠配置相應的列名,列順序以及數據類型 |
Index | 應用於實體的屬性上,能夠爲列生成索引(EF 6.1以上的版本才支持) |
ForeignKey | 應用於實體的屬性上,而後生成外鍵屬性 |
NotMapped | 能夠應用於實體或者實體的屬性上,應用於實體上,就不會生成表,應用於屬性上,就不會生成列 |
DatabaseGenerated | 配置列自動生成,能夠有三個選項:identity【自增】, computed【計算】 or none【無】 |
InverseProperty | 應用於屬性上。就是有相同的關係的時候,用於反轉導航屬性。【概念很差說,等會後面有例子講解。】 |
ComplexType | 在EF 6中標記類是複雜類型,注意:EF Core 2.0 中不支持這個Complex特性 |
咱們在後面的子節中,來好好學習一個每一個特性。ui