9.翻譯系列:EF 6以及EF Core中的數據註解特性(EF 6 Code-First系列)

原文地址: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中工做方式都是相同的、效用同樣的。學習

System.ComponentModel.DataAnnotations Attributes

特性 描述
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

相關文章
相關標籤/搜索