當(dāng)前位置:
首頁 >
【转】EntityFramework使用Code First模式创建数据库控制生成单数形式的表名
發(fā)布時間:2023/12/10
52
豆豆
生活随笔
收集整理的這篇文章主要介紹了
【转】EntityFramework使用Code First模式创建数据库控制生成单数形式的表名
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
使用Code-First模式生成數(shù)據(jù)庫時,默認(rèn)生成的數(shù)據(jù)庫表的名稱為類型的復(fù)數(shù)形式,例如實(shí)體類名稱是"User",默認(rèn)生成的數(shù)據(jù)庫表名為“Users”,多數(shù)情況下我們并不想生成的數(shù)據(jù)庫表名為復(fù)數(shù)形式,那么應(yīng)該如何來控制呢?
當(dāng)我們想要自定義一些數(shù)據(jù)庫表的生成規(guī)則的時候,會重寫OnModelCreating()方法,控制生成的表名的單復(fù)數(shù)形式同樣可以在這個方法中完成,實(shí)現(xiàn)代碼如下:
1 using System;2 using System.Collections.Generic;3 using System.Data.Entity;4 using System.Linq;5 using System.Text;6 using System.Threading.Tasks;7 using System.Data.Entity.ModelConfiguration.Conventions;8 using 控制生成單數(shù)表名.Model;9 10 namespace 控制生成單數(shù)表名.DatabaseContext 11 { 12 public class OperationContext :DbContext 13 { 14 /// <summary> 15 /// 構(gòu)造函數(shù):繼承父類,用來創(chuàng)建數(shù)據(jù)庫 16 /// </summary> 17 public OperationContext() 18 : base("OrderManagerSystem") 19 { } 20 21 22 public DbSet<LoginRecordInfo> LoginRecordInfo { get; set; } 23 24 /// <summary> 25 /// 重新OnModelCreating()方法,解決EF使用Code First模式生成數(shù)據(jù)庫表名變?yōu)閺?fù)數(shù)的問題 26 /// </summary> 27 /// <param name="modelBuilder"></param> 28 protected override void OnModelCreating(DbModelBuilder modelBuilder) 29 { 30 // 解決EF使用Code First模式生成數(shù)據(jù)庫表名變?yōu)閺?fù)數(shù)的問題 31 modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); 32 } 33 } 34 }在OperationContext類中實(shí)現(xiàn)重寫OnModelCreating()方法。OperationContext類繼承自數(shù)據(jù)庫上下文DbContext。重寫OnModelCreating()方法需要引入下面的命名空間:
using System.Data.Entity.ModelConfiguration.Conventions;
總結(jié)
以上是生活随笔為你收集整理的【转】EntityFramework使用Code First模式创建数据库控制生成单数形式的表名的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 熊出没?国际油价暴跌,全球口罩疯涨,美国
- 下一篇: 文带你深入了解 Redis 内存模型