🦄 .NET aot orm, C# orm, VB.NET orm, Mysql orm, Postgresql orm, SqlServer orm, Oracle orm, Sqlite orm, Firebird orm, 达梦 orm, 人大金仓 orm, 神通 orm, 翰高 orm, 南大通用 orm, 虚谷 orm, 国产 orm, Clickhouse orm, QuestDB orm, MsAccess orm.
3.99k
stars
842
forks
source link
fsql.Aop.ConfigEntity 事件中,可以处理表名和索引名,但处理不了OraclePrimaryKeyNameAttribute设定的主键名称。 #1752
Open
ensleep opened 2 months ago
场景:
1、CodeFirst方式下,FreeSql提供了fsql.Aop.ConfigEntity事件,以修改实体与表名、索引名、主键名的对应关系。 2、由于Oracle对主键名称要求特殊,所以FreeSql提供了oracle专用的OraclePrimaryKeyNameAttribute特性来命名Oracle中对应的主键名称。
问题: 当我使用了fsql.Aop.ConfigEntity事件来修改实体与数据库对象之间的映射关系时,可以完成对表名、索引名称的修改,但是,却无法修改使用OraclePrimaryKeyNameAttribute所指定的Oracle的特定主键名,这应该是设计上的Bug。
影响: 1、当我编写一套自动部署数据库结构的程序时,一个用户空间下只能部署一个,如果想部署多个,即需要借助fsql.Aop.ConfigEntity事件来修改数据库对象的名称以防止多个部署互相冲突。但是,我无法在fsql.Aop.ConfigEntity事件中修改OraclePrimaryKeyNameAttribute的值,导致在Oracle中,表的主键重复,无法实现多个实例的部署。
问题描述及重现代码:
数据库版本
所有版本
安装的Nuget包
.net framework/. net core? 及具体版本
.net core 6.0