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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

使用 Fluent API 配置/映射属性和类型

發(fā)布時間:2024/8/24 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用 Fluent API 配置/映射属性和类型 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

配置EF使之在映射數(shù)據(jù)時繞開約定:注釋和Fluent API。注釋僅涵蓋一部分Fluent API功能。

通過重寫DbContext上的OnModelCreating方法來訪問Code First Fluent API。

屬性映射

Property方法用于為每個屬于實體或復雜類型的屬性配置特性。Property方法用于獲取給定屬性的配置對象。配置對象上的選項特定于要配置的類型(IsUnicode只能用于字符串屬性)

配置主鍵

有關主鍵的實體框架約定如下:

  • 類定義名稱稱為“ID”或“Id”的屬性
  • 或類名后跟“ID”或"Id"
  • 要顯示將某個屬性設置為主鍵,可使用HasKey方法。

    modelBuilder.Entity<Person>().HasKey(t => t.Id)

    配置組合主鍵

    modelBuilder.Entity<Person>().HasKey(t => new { t.Id ,t.Name});

    關閉數(shù)值主鍵標識

    modelBuilder.Entity<Person>().Property(t => t.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);

    指定屬性的最大長度

    如果超出最大長度,將引發(fā)DbEntityValidationException異常

    modelBuilder.Entity<Person>().Property(t => t.Name).HasMaxLength(50);

    將屬性配置為必須

    modelBuilder.Entity<Person>().Property(t => t.Name).IsRequired();

    指定不將CLR屬性映射到數(shù)據(jù)庫中的列

    modelBuilder.Entity<Person>().Ignore(t => t.Name);

    將CLR屬性映射到數(shù)據(jù)庫中的特定列

    以下將Name CLR屬性映射到數(shù)據(jù)庫中的"myNmae"列

    modelBuilder.Entity<Person>().Property(t => t.Name).HasColumnName("myname");

    配置字符串屬性是否支持unicode內容

    默認情況下,字符串為Unicode(sqlserver中的nvarchar),可以使用IsUnicode方法指定字符串為varchar類型

    modelBuilder.Entity<Person>().Property(t => t.Name).IsUnicode(false);

    配置數(shù)據(jù)庫列的數(shù)據(jù)類型

    modelBuilder.Entity<Person>().Property(t => t.Name).HasColumnType("varchar");

    將屬性配置為用作并發(fā)令牌

    modelBuilder.Entity<OfficeAssignment>() .Property(t => t.Timestamp) .IsConcurrencyToken();

    類型映射

    將類型指定為復雜類型

    按約定,沒有指定主鍵的類型將被視為復雜類型。在一些情況下,Code First不會檢測復雜類型

    modelBuilder.ComplexType<Details>();

    指定不將CLR實體類映射到數(shù)據(jù)庫中的表

    modelBuilder.Ignore<OnlineCourse>();

    將CLR實體類型映射到數(shù)據(jù)庫中的特定表

    modelBuilder.Entity<Department>() .ToTable("t_Department");

    也可以指定架構名稱

    modelBuilder.Entity<User>().ToTable("User","System");

    轉載于:https://www.cnblogs.com/goodlucklzq/p/4612003.html

    總結

    以上是生活随笔為你收集整理的使用 Fluent API 配置/映射属性和类型的全部內容,希望文章能夠幫你解決所遇到的問題。

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