【CodeFirst】项目启动时根据Entity自动创建表时,PostgreSQL数据库报错 返回

Entity代码:
错误消息:
SqlSugar.SqlSugarException
HResult=0x80131500
Message=42704: type "nvarchar2" does not exist
POSITION: 44
Source=SqlSugar
StackTrace:
在 SqlSugar.Check.Exception(Boolean isException, String message, String[] args)
在 SqlSugar.CodeFirstProvider.InitTables(Type entityType)
热忱回答(17)
-
fate sta VIP0
2024/5/8这个写法错的
0 回复 -
fate sta VIP0
2024/5/8datatype删掉就行了
0 回复 -
北斗星05 VIP0
2024/5/9那如果是多数据库的场景:
1. SQLServer => 【字段A】数据类型为 nvarchar;
2. Oracle => 【字段A】数据类型为 nvarchar2;
3. MySQL和Postgre => 【字段A】数据类型为 varchar;
只需要通过配置文件指定数据库类型,不需要再去手动修改Entity的属性A去创建对应数据表的类型。
不通过指定 ColumnDataType 那应该怎么做才能实现?
0 回复 -
北斗星05 VIP0
2024/5/9@fate sta:
0 回复 -
北斗星05 VIP0
2024/5/9@fate sta:
那如果是多数据库的场景:
1. SQLServer => 【字段A】数据类型为 nvarchar;
2. Oracle => 【字段A】数据类型为 nvarchar2;
3. MySQL和Postgre => 【字段A】数据类型为 varchar;
只需要通过配置文件指定数据库类型,不需要再去手动修改Entity的属性A去创建对应数据表的类型。
不通过指定 ColumnDataType 那应该怎么做才能实现?
0 回复 -
fate sta VIP0
2024/5/9DbType = SqlSugar.DbType.SqlServer,
ConnectionString = Config.ConnectionString,
IsAutoCloseConnection =
true
,
MoreSettings=
new
ConnMoreSettings() {
SqlServerCodeFirstNvarchar=
true
,
//建表字符串默认Nvarchar
}
sqlserver和mysql是完全可以配的
0 回复 -
fate sta VIP0
2024/5/9默认varchar 配上SqlServerCodeFirstNvarchar满足了 除ORACLE外的需求
0 回复 -
fate sta VIP0
2024/5/9Oracle可以单独处理一下
0 回复 -
fate sta VIP0
2024/5/9算了我加个功能吧 启用nvarchar2和和sqlserver一样用法
0 回复 -
fate sta VIP0
2024/5/9SqlSugarCore 5.1.4.155-preview13
过五分钟后勾一下预览
用法
DbType = DbType.Oracle, ConnectionString = Connection, MoreSettings=new ConnMoreSettings() { SqlServerCodeFirstNvarchar=true,//sqlserver用nvarchar OracleCodeFirstNvarchar2=true//oracle用navarchar2 //其他是varchar }
0 回复 -
北斗星05 VIP0
2024/5/9@fate sta:
数据库是PostgreSQL,还是会抛异常。。。
0 回复 -
fate sta VIP0
2024/5/9@北斗星05:提供完整DEMO, PGSQL是不可能生成nvarchar2的
0 回复 -
fate sta VIP0
2024/5/9你可以检查一下你的实体没有漏改的
0 回复 -
fate sta VIP0
2024/5/9还有问题需要提供完整的DEMO
0 回复 -
北斗星05 VIP0
2024/5/9@fate sta:
不好意思,确实改漏了一个BaseEntity。
麻烦问一下 稳定版大概什么时间发布?
0 回复 -
fate sta VIP0
2024/5/9@北斗星05:一般一周左右
0 回复 -
北斗星05 VIP0
2024/5/9@fate sta:
好的,非常感谢及时帮助解决问题
0 回复