mydb.CodeFirst.GetDifferenceTables(type)报错信息无法捕获 返回


不加try调试可以看到连续报两个错,需要捕获第一个报错信息才能知道为什么错误。
实际情况是只能捕获到:“无法对 表 'TempDiff250916110416922' 执行 删除,因为它不存在,或者您没有所需的权限。”,这种没有意义的报错信息

热忱回答(18)
-
fate sta VIP0
2025/9/4升级最新看看
0 回复 -
fate sta VIP0
2025/9/4
这个提示比较明显了吧,建表出错了。。text不能加length
0 回复 -
fate sta VIP0
2025/9/4提供一下报错实体。
0 回复 -
˙Ⱉ˙ฅ VIP0
2025/9/4@fate sta:问题就是只有调试才能看到这个错误,现在业务是给前端去加字段的,使用上无法知道具体错误信息
0 回复 -
˙Ⱉ˙ฅ VIP0
2025/9/4@fate sta:实体是动态的
0 回复 -
fate sta VIP0
2025/9/4@˙Ⱉ˙ฅ:不管你是怎么动态的。。你要把动态的值硬编码出来,我才能看到哪有问题。
比如读的数据库类型中有text不能加Length要清空掉
0 回复 -
˙Ⱉ˙ฅ VIP0
2025/9/4
DemoTableDifferenceProvider.7z这是demo,使用的版本是5.1.4.107,用了最新版连有效的错误信息都没有抛出来
0 回复 -
˙Ⱉ˙ฅ VIP0
2025/9/4static void Main(string[] args) { using (var mydb = new SqlSugarClient(new ConnectionConfig { ConnectionString = ".", DbType = SqlSugar.DbType.SqlServer, IsAutoCloseConnection = true, MoreSettings = new ConnMoreSettings() { IsWithNoLockQuery = true } })) { var objtab = mydb.DynamicBuilder().CreateClass("Demo1", new SugarTable() { TableName = "Demo1", IsDisabledDelete = false, IsDisabledUpdateAll = false, }); objtab = objtab.CreateProperty("Col1" , typeof(int) , new SugarColumn() { ColumnName = "Col1", IsPrimaryKey = true, IsIdentity = true, IsNullable = false, ColumnDataType = "int", Length = 0, DecimalDigits = 0, DefaultValue = null, ColumnDescription = "" }); objtab = objtab.CreateProperty("Col2" , typeof(string) , new SugarColumn() { ColumnName = "Col2", IsPrimaryKey = false, IsIdentity = false, IsNullable = false, ColumnDataType = "ntext", Length = 1000, DecimalDigits = 0, DefaultValue = null, ColumnDescription = "" }); var type = objtab.BuilderType(); //1.直接调试这部可以获取到报错信息:SqlSugar.SqlSugarException:“第 2 个列、参数或变量: 不能对数据类型 ntext 指定列宽。” //注释这行,try捕获x2 TableDifferenceProvider x1 = mydb.CodeFirst.GetDifferenceTables(type); try { TableDifferenceProvider x2 = mydb.CodeFirst.GetDifferenceTables(type); } catch (Exception ex) { //拿不到有效的报错信息 Console.WriteLine("错误实体配置:" + ex.Message); } Console.WriteLine("创建实体成功!"); } }0 回复 -
˙Ⱉ˙ฅ VIP0
2025/9/12@fate sta:大佬求助
0 回复 -
fate sta VIP0
2025/9/12
ntext把length设置为0
0 回复 -
˙Ⱉ˙ฅ VIP0
2025/9/26@fate sta:我知道,我是为了复现错误,现在发现的问题是当配置错误的时候无法捕获到有效的错误信息
0 回复 -
fate sta VIP0
2025/9/26@˙Ⱉ˙ฅ:升级高版本看看,应该优化过错误信息了
0 回复 -
˙Ⱉ˙ฅ VIP0
2025/9/26@fate sta:升级最新版还是无法拿到准确的错误信息
0 回复 -
˙Ⱉ˙ฅ VIP0
2025/9/26@fate sta:现在的需求是希望能用Console.WriteLine方法打印出【SqlSugar.SqlSugarException:“第 2 个列、参数或变量: 不能对数据类型 ntext 指定列宽。】这个错误信息
0 回复 -
˙Ⱉ˙ฅ VIP0
2025/9/29@fate sta:
finally
{
sqlSugarProvider.DbMaintenance.DropTable(text);
}应该加一个判断,临时表是否生成了,没生成的不应该执行DropTable(text);
0 回复 -
fate sta VIP0
2025/9/29SqlSugarCore 5.1.4.206-preview03
过五分钟后安装,已优化
0 回复 -
fate sta VIP0
2025/9/29勾预览
0 回复 -
˙Ⱉ˙ฅ VIP0
2025/9/29@fate sta:
万分感谢,不过我项目是.Net Framework
0 回复