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


原文地址:http://www.entityframeworktutorial.net/code-first/dataannotation-in-code-first.aspx

 

EF 6 Code-First系列文章目錄:

 

 

數據注解特性是.NET特性,可以在EF或者EF Core中,應用於實體類上或者屬性上,以重寫默認的約定規則。

在EF 6和EF Core中,數據注解特性包含在System.ComponentModel.DataAnnotations命名空間和System.ComponentModel.DataAnnotations.Schema命名空間下。

這些特性不僅僅適用於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特性

   我們在后面的子節中,來好好學習一個每個特性。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM