创建实体时的表名(包含/正则表达式)-实体框架-表前缀

问题描述 投票:0回答:1

我正在尝试基于现有的MySQL数据库创建EF模型。创建实体后,我使用:

对其进行映射

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

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

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

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

Regex匹配的名称。

这可行吗?另一种选择是向用户询问特定于他/她的数据库的TablePrefix并使用它(modelBuilder.Entity<Lang>().ToTable(prefix + "tableName"),但这很不方便。由于前缀是唯一可以在数据库之间更改的东西,因此能够通过其名称检测表确实很有帮助。

c# mysql entity-framework prefix ef-model-builder
1个回答
1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.