字符串表达式BUG 返回
乔一乔 发布于2025/12/24
我使用表达式
query.Where(x => x.Departments!.Any(a => a.Department!.OrganizationId == Guid.Empty))
生成的sql正常如下:
SELECT "code","name","forbidden","gender","supplier_id","customer_id","id","row_time","row_version" FROM "t_os_person" "x" WHERE ( EXISTS (SELECT 1 FROM "t_os_person_department" "a" WHERE ( (SELECT "organization_id" FROM "t_os_department" WHERE "a"."department_id"="id" ) = CAST('00000000-0000-0000-0000-000000000000' AS uuid) ) AND "p_id"="x"."id" ) )
但如果用字符串表达式
query.Where("x", $"departments.Any(a => a.department.organizationId == {Guid.Empty})")
生成的sql有问题如下:
SELECT "code","name","forbidden","gender","supplier_id","customer_id","id","row_time","row_version" FROM "t_os_person" "x" WHERE ( EXISTS (SELECT 1 FROM "t_os_person_department" WHERE ( (SELECT "organization_id" FROM "t_os_department" WHERE "param_0"."department_id"="id" ) = CAST('00000000-0000-0000-0000-000000000000' AS uuid) ) AND "p_id"="x"."id" ) )
Npgsql.PostgresException (0x80004005): 42P01: 对于表"param_0",丢失FROM子句项
热忱回答(10)
-
乔一乔 VIP0
2025/12/25请问不能这么用么?
0 回复 -
fate sta VIP0
2025/12/25https://www.donet5.com/Home/Doc?typeId=2366
按模版提供可以重现的DEMO
0 回复 -
fate sta VIP0
2025/12/25db.queryable<T>("param_0") 加个别名试一下。
0 回复 -
乔一乔 VIP0
2025/12/30已提交DEMO,麻烦看下是什么原因。
0 回复 -
乔一乔 VIP0
2025/12/30@fate sta:业务代码没法固定别名,演示代码已提交上来,麻烦查下是不是框架BUG。
0 回复 -
乔一乔 VIP0
2026/1/4@fate sta:请问有结果了么
0 回复 -
fate sta VIP0
2026/1/6在处理中
0 回复 -
乔一乔 VIP0
2026/1/12@fate sta:你好,请问有结果了吗?
0 回复 -
乔一乔 VIP0
2026/2/26@fate sta:请问有结果了吗?
0 回复 -
fate sta VIP0
2026/3/5@乔一乔:明天处理好。
0 回复