Table创建实体时的名称(包含/正则表达式)- Entity Framework - Table 前缀

TableName (Contains / Regex) When Creating An Entity - Entity Framework - Table Prefix

我正在尝试基于现有 MySQL 数据库创建 EF 模型。 创建实体后,我使用以下方式对其进行映射:

[Table("databaseName.tableName")] 或 :

modelBuilder.Entity<Lang>().ToTable("tableName")OnModelCreating.

我遇到的问题是 table 名称可能有意外的 前缀 。 我想做的是,在不知道前缀的情况下,在数据库中搜索任何 table:

(类似于)EndsWith("tableName") 使用它,或者:

哪个名字匹配 Regex.

这可行吗?另一种方法是向用户询问特定于 his/her 数据库的 TablePrefix 并使用它 (modelBuilder.Entity<Lang>().ToTable(prefix + "tableName"),但这会很不方便。由于前缀是唯一可以从数据库更改为另一个的东西,因此能够通过名称检测 table 真的很有帮助。

您无法在 OnModelCreating 中查询数据库,但您可以使用连接字符串打开一个 ADO.NET 数据库连接和 运行 检索 table 的查询名称并构建实体类型和 table 名称之间的映射。