where 子查询中表名 错误, 返回

测试用例
private static void Subquery()
{
Console.WriteLine("");
Console.WriteLine("#### Subquery Start ####");
var db = GetInstance();
var list = db.Queryable<Orders>().Take(10).Select(it => new
{
customName=SqlFunc.Subqueryable<Custom>().Where("it.CustomId=id").Select(s=>s.Name),
customName2 = SqlFunc.Subqueryable<Custom>().Where("it.CustomId = id").Where(s => true).Select(s => s.Name)
}).ToList();
var list2 = db.Queryable<Orders>().Where(it => SqlFunc.Subqueryable<OrderItem>().Where(i => i.OrderId == it.Id).Any()).ToList();
Console.WriteLine("#### Subquery End ####");
}
最后生成的SQL:
SELECT Id,Name,Price,CreateTime,CustomId FROM Orders it WHERE (EXISTS ( SELECT * FROM OrderItem i WHERE ( OrderId = it.Id ) ))
OrderItem 是类名, 真实表名应该是 OrderDetail , 这段SQL 是在哪里生成的, 怎么调试。
热忱回答(6)
-
fate sta VIP0
2022/12/5实体发出来
并且提供sqlsugar版本号
0 回复 -
fate sta VIP0
2022/12/5数据库类型是什么
0 回复 -
fate sta VIP0
2022/12/5本地未重现 用的官网源码中的DEMO
0 回复 -
fate sta VIP0
2022/12/5SELECT [Id],[Name],[Price],[CreateTime],[CustomId] FROM [Order] it WHERE (EXISTS ( SELECT * FROM [OrderDetail] [i] WHERE ( [OrderId] = [it].[Id] ) ))
0 回复 -
hua0129 VIP0
2022/12/6我用的 sqlsugar 11.17 日 master 的版本。我用的是一个自定义的数据库。
SELECT [Id],[Name],[Price],[CreateTime],[CustomId] FROM [Order] it WHERE (EXISTS ( SELECT * FROM [OrderDetail] [i] WHERE ( [OrderId] = [it].[Id] ) ))
你这个测试用的是哪个数据库,我看能否对比测试下。
@fate sta:
0 回复 -
fate sta VIP0
2022/12/7@hua0129:老版本可能有BUG以新版本为主
0 回复