pgsql InitTable 报错:Parameter count mismatch 返回
SqlSugar
沟通中
7
337

悬赏:0 飞吻
下载源码调试发现是这个地方报错
新增了一个字段 action,是枚举类型,默认值为0
----------------------------
专门写了一个测试代码试了,没有发现问题
热忱回答(7)
-
1024 VIP0
2024/7/26定位到报错位置:
0 回复 -
1024 VIP0
2024/7/26报错语句:columnInfo.PropertyInfo.GetValue(item, null)
0 回复 -
1024 VIP0
2024/7/26取消掉:Aop.DataChangesExecuted 的注册,就不会出现异常
删除掉字段上的 DefalutValue 也不会出现异常
0 回复 -
fate sta VIP0
2024/7/26https://www.donet5.com/Home/Doc?typeId=2366
按模版提供可以重现的DEMO
0 回复 -
1024 VIP0
2024/7/26试过了,没有重现,应该是某个特殊地方设置导致的,暂时没找到
0 回复 -
fate sta VIP0
2024/7/26@1024:那就做好日志,是什么实体什么样参数出的问题
0 回复 -
1024 VIP0
2024/7/26[SugarTable("Special", TableDescription = "专题", IsDisabledDelete = true)] public class Special { /// <summary> /// 非自增ID /// </summary> [SugarColumn(ColumnDescription = "ID", IsPrimaryKey = true)] public long Id { get; set; } /// <summary> /// 名称 /// </summary> [SugarColumn(ColumnDescription = "名称",DefaultValue ="1")] public string Name { get; set; } [SugarColumn(ColumnDescription ="类型",DefaultValue ="0")] public AbcType Type { get; set; } } public enum AbcType { 测试=0 }
这个是我测试的实体
var _db = new SqlSugarScope(new ConnectionConfig() { DbType = SqlSugar.DbType.PostgreSQL, ConnectionString = "HOST=127.0.0.1;PORT=5432;DATABASE=test;Username=test;PASSWORD=123456;", IsAutoCloseConnection = false, MoreSettings = new ConnMoreSettings { IsAutoDeleteQueryFilter = true,//启用删除查询过滤器 IsAutoUpdateQueryFilter = true//启用更新查询过滤器 (表达式更新,如果是实体方式更新建议先查询在更新) } }, db => { //单例参数配置,所有上下文生效 db.Aop.OnLogExecuting = (sql, pars) => { //获取IOC对象不要求在一个上下文 //vra log=s.GetService<Log>() //获取IOC对象要求在一个上下文 //var appServive = s.GetService<IHttpContextAccessor>(); //var log= appServive?.HttpContext?.RequestServices.GetService<Log>(); var sqlStr = UtilMethods.GetSqlString(DbType.SqlServer, sql, pars); Console.WriteLine($"SQL:{sqlStr}"); }; db.Aop.DataExecuting = (oldValue, entityInfo) => { }; db.Aop.DataChangesExecuted = (oldValue, entityInfo) => { }; }); _db.CodeFirst.InitTables(typeof(Special));//创建表 var entityType = typeof(Special); Console.WriteLine("111222333");
这个是测试代码
这个代码测试没发现问题
-----------------------------------
我已经把问题相关信息提交,也已经换用另外方式,不用DataChangesExecuted,现在已经没有问题了,错误很简单:Parameter count mismatch,就是在调用aop的时候,数据不对导致,至于是哪儿不对我没发现,已经尽力。
0 回复