日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

EntityFramework6.X 之 Fulent

發布時間:2023/12/9 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。