EntityFramework6.X 之 Fulent
Fulent
Fulent是配置領域模型類的另一個方法,它比DataAnnotations提供更多的配置,提供以下三種方法映射
|   Mappings  |   To Database  | 
|   Model-Wide Mapping  |   設置默認架構,設置經典約束  | 
|   Entity Mapping  |   映射單個或多個表格或架構,映射復雜類型,繼承策略  | 
|   Property Mapping  |   屬性、屬性名、列類型、非空或非空列、列寬、列序列;并發列;外鍵列;配置關系  | 
通常Fulent是在dbContext類或派生類中重寫OnModelCreating方法定義,如下假設已經定義了Student領域類和Standard領域類
?
?
EntityTypeConfiguration Class
該類是一個非常重要的fluent API函數,提供了重要的方法去配置實體類和屬性,通過Entity<TEntity>()方法調用
? ?
|   Method Name  |   Description  | 
|   HasKey<TKey>  |   配置實體的主鍵約束  | 
|   HasMany<TTargetEntity>  |   從這個實體開始配置一個多對多的關系  | 
|   HasOptional<TTargetEntity>  |   從這個實體配置一個可選關系,沒有被關系指定的一方將可以保存到數據庫中,外鍵可以為空  | 
|   HasRequired<TTargetEntity>  |   從這個實體配置一個必須關系,只有在確定關系的情況下實體類型實例才能被保存到數據庫,否則外鍵列將會空  | 
|   Ignore<TProperty>  |   從領域模型中排除一個屬性,該屬性將不映射到數據庫中  | 
|   Map  |   允許高級配置該模型的數據庫模型  | 
|   Property<T>  |   配置一個已經定義的類型的結構屬性  | 
|   ToTable  |   將領域類映射到數據庫中的表名  | 
1)????? 將類型指定為復雜類型
按約定,沒有指定主鍵的類型將被視為復雜類型
Eg: modelBuilder.ComplexType<Details>();
2)????? 指定不將CLR實體類型映射到數據庫中的表
簡單說就是不將實體類型映射到數據庫表中
Eg: modelBuilder.Ignore<OnlineCourse>();
Entity Mappings
可設置默認的架構
?
也可將實體配置到制定表
?
將一個實體類配置到多個表中
?
Property Mappings
?
Property用于為每個屬于實體或復雜類型的屬性配置特性。Property方法用于獲取給定屬性的配置對象。配置字符串屬性是否支持Unicode內容,默認情況下,字符串為Unicode(SQLServer中的nvarchar),可以使用IsUnicode方法指定字符串應為varchar類型
Eg:modelBuilder.Entity<Department>().Property(t=>t.Name).IsUnicode(false);
先將領域類定義好
?
1)????? 配置主鍵約束和組合主鍵
?
2)????? 配置列名、類型和順序,不僅僅可以通過方法,也可以通過HasColumnAnnotation配置
?
3)????? 配置空和非空列
?
4)????? 配置列寬
?
5)????? 配置并發列
?
?
轉載于:https://www.cnblogs.com/Terrece/p/6892591.html
總結
以上是生活随笔為你收集整理的EntityFramework6.X 之 Fulent的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 百度网盘使用Motrix下载资源
 - 下一篇: 黑苹果intel 9560ac网卡成功驱