0

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

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

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

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

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

哪个名称与 a 匹配Regex

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

4

1 回答 1

1

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

于 2020-05-28T18:10:55.740 回答