.NetCore中EF Core为迁移的数据库表统一添加前缀
2023-06-13 09:13:04 时间
在项目开发的过程中我们往往需要将项目数据库中的表添加一个统一的前缀。我们为什么要添加表前缀呢?有的可能是公司规定,更多的原因是项目和业务的区分。
每个项目针对不同的需求或业务场景,追加相应的标识。当项目到达一定规模后,数据库表前缀的意义便体现出来了,有利于在海量数据中定位单张数据表,在数据库拆分或者查问题的时候比较方便一些。
逐个配置
在Entity Framework Core中我们可以通过以下两种方式实现,逐个配置每个表的前缀的方式实现
Fluent API
modelBuilder.Entity<Blog>()
.ToTable("T_Blogs");
数据注释
[Table("T_Blogs")]
public class Blog
{
public int BlogId { get; set; }
public string Name { get; set; }
public string Url { get; set; }
}
统一配置
那么如何在项目中统一添加前缀呢?当然有更优雅的方式,我们可以在创建DbContext时进行一些额外的配置即可实现。
public class MyContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
// 从当前程序集加载所有IEntityTypeConfiguration
modelBuilder.ApplyConfigurationsFromAssembly(this.GetType().Assembly);
// 统一添加前缀
foreach (IMutableEntityType entity in modelBuilder.Model.GetEntityTypes())
{
entity.SetTableName("T_" + entity.GetTableName());
}
}
}
相关文章
- 【愚公系列】2022年10月 LiteDB数据库-.Net Core中的使用
- 【愚公系列】2023年02月 .NET CORE工具案例-ChatGPT和.NET Core应用的结合
- 【愚公系列】2023年02月 .NET CORE工具案例-Workflow-Core轻量级工作流引擎(数据流转)
- 【愚公系列】2023年02月 .NET CORE工具案例-Workflow-Core轻量级工作流引擎(流程事件)
- MySQL Variables super_read_only 数据库 参数变量解释及正确配置使用
- 错误解决MySQL 1045错误:连接数据库的正确方式(MySQL连接1045)
- MySQL 分布式数据库架构:主从介绍(mysql主从有什么用)
- 让自动化技术帮助你开启MSSQL数据库之旅(自动创建mssql数据库)
- Oracle 9.2:一款强大的数据库软件(oracle9.2)
- 深入了解Oracle数据库的删除指令(删除数据命令oracle)
- 化技术SQL Server数据库格式化技术指南(sqlserver的格式)
- 清理Oracle数据库监听日志的正确方式(oracle清理监听日志)
- 简单步骤:快速访问MySQL数据库(访问mysql 数据库)
- AIX环境下Oracle数据库安装指南(aix下oracle安装)
- Oracle数据库中修改元素的实践(oracle修改元素内容)
- Oracle数据库中如何比较时间(oracle 中时间比较)
- Oracle数据库不再追求完美的序列(oracle 不要序列)
- Oracle数据库中的赋值号使用介绍(oracle中的赋值号)
- asp.net获取SQL所有数据库名、所有表名、所有字段名
- 数据库查询中遭遇特殊字符导致问题的解决方法