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 名称之间的映射。
我正在尝试基于现有 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 名称之间的映射。