Storageable 操作报错:Invalid object name 返回
Mysql数据表是存在的,配置如下应,查询能成功

但在使用以下语句的时候报如下错误!
var list = _db.Storageable(jobTriggers).ToStorage(); await list.AsInsertable.ExecuteCommandAsync(); await list.AsUpdateable.ExecuteCommandAsync();

附连接字符串:
server=xxxx;Database=jack_test;Uid=jack;Pwd=xxxxxxx;allowuservariables=True;UseXaTransactions=false;
热忱回答(21)
-
fate sta VIP0
2025/7/26表名不存在
0 回复 -
fate sta VIP0
2025/7/26也可能是多租户连错库了
0 回复 -
fate sta VIP0
2025/7/26db.CurrentConnectionConfig.ConnectionString
当前字符串
0 回复 -
zy8008 VIP0
2025/7/26表名是存在的,而且是可以查询出来数据的
0 回复 -
fate sta VIP0
2025/7/26这个错是数据库扔出来的,表就是不存在。。不是库搞错就是表搞错了
0 回复 -
fate sta VIP0
2025/7/26可用db.queryable<T>().ToList()进行验证
0 回复 -
zy8008 VIP0
2025/7/26确实是连接字符串错了,匹配到了另一个租户的连接字符串上了!
我是用类上的的Tenant配置的

对应的配置如下
为什么会出现错的配置呢?
0 回复 -
fate sta VIP0
2025/7/26db.CurrentConnectionConfig.ConnectionString
当前字符串
0 回复 -
fate sta VIP0
2025/7/26var mydb=db.ConnectionWithAttr<T>();
拿到正确的db
0 回复 -
zy8008 VIP0
2025/7/26await _db.AsTenant().QueryableWithAttr<JobTrigger>()
是正确的,数据也能出来
0 回复 -
fate sta VIP0
2025/7/26WithAttr是关键。。
var mydb=db.ConnectionWithAttr<T>();
0 回复 -
fate sta VIP0
2025/7/26方法没有WithAttr需要手动获取
0 回复 -
zy8008 VIP0
2025/7/26这个问题在以前版本没出现过,以前功能是正常的,是最近更新过版本出现的!
0 回复 -
fate sta VIP0
2025/7/26var mydb=db.ConnectionWithAttr<T>();
mydb.Stroable
这样改
0 回复 -
fate sta VIP0
2025/7/26没有withattr都是默认一个库
0 回复 -
fate sta VIP0
2025/7/26不管哪个版本都是一样的
0 回复 -
zy8008 VIP0
2025/7/26我感觉很疑惑!
请看我产线和开发环境的对比

同样的代码和链接字符串配置,租户配置也是一样的,PRD是用的5.1.4.170,功能是一切正常的!

DEV环境因为升级了5.1.4.198版本,就会出现多租户链接映射错误报错,必须用你提供的方法先拿到对应的链接配置才能成功
0 回复 -
fate sta VIP0
2025/7/26字符串顺序可能不一样
0 回复 -
fate sta VIP0
2025/7/26没有withattr都是默认一个库
0 回复 -
fate sta VIP0
2025/7/26代码这样写规范点
var mydb=db.ConnectionWithAttr<T>();
mydb.StroableXXX
0 回复 -
zy8008 VIP0
2025/7/29我大概知道原因了,因为PRD和开发环境的连接配置顺序不一样的。
PRD第一个链接配置就是JobTrigger的配置
DEV则不是JobTriger的配置
我是不是可以这样理解:
多租户配置中如果没有使用WithAttr,则不会根据对象配置的Tenant自动配置链接配置,会默认使用配置列表中的第一个,所以我在DEV会报错,PRD不会!
0 回复