EF使用Code First模式生成單數形式表名
使用Code-First模式生成數據庫時,默認生成的數據庫表的名稱為類型的復數形式,例如實體類名稱是"User",默認生成的數據庫表名為“Users”,多數情況下我們並不想生成的數據庫表名為復數形式,那麼應該如何來控制呢?
當我們想要自定義一些數據庫表的生成規則的時候,會重寫OnModelCreating()方法,控制生成的表名的單復數形式同樣可以在這個方法中完成,實現代碼如下:
using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.Entity.ModelConfiguration.Conventions; using 控制生成單數表名.Model; namespace 控制生成單數表名.DatabaseContext { public class OperationContext :DbContext { /// <summary> /// 構造函數:繼承父類,用來創建數據庫 /// </summary> public OperationContext() : base("OrderManagerSystem") { } public DbSet<LoginRecordInfo> LoginRecordInfo { get; set; } /// <summary> /// 重新OnModelCreating()方法,解決EF使用Code First模式生成數據庫表名變為復數的問題 /// </summary> /// <param name="modelBuilder"></param> protected override void OnModelCreating(DbModelBuilder modelBuilder) { // 解決EF使用Code First模式生成數據庫表名變為復數的問題 modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); } } }
在OperationContext類中實現重寫OnModelCreating()方法。OperationContext類繼承自數據庫上下文DbContext。重寫OnModelCreating()方法需要引入下面的命名空間:
- using System.Data.Entity.ModelConfiguration.Conventions;
到此這篇關於EF使用Code First模式生成單數形式表名的文章就介紹到這瞭。希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Entity Framework使用DbModelBuilder API創建表結構
- Entity Framework使用配置夥伴創建數據庫
- Entity Framework管理一對二實體關系
- Entity Framework管理一對一實體關系
- Entity Framework使用Code First的實體繼承模式