ClearFilter疑问 返回

db.Queryable<AsTableLog>().ClearFilter()
.LeftJoin<AsTableLog202401>((a, b) => a.id == b.id)
.Where(a => a.id == "1")
.Select((a, b) => new
{
a.id,
Name=SqlFunc.Subqueryable<AsTableLog202401>().Where(c=>c.id==a.id).Select(c=>c.msg)
})
.ToList();
我这样可以清除两个表的全部过滤器,生成的sql:
SELECT `a`.`id` AS `id` , (SELECT `c`.`msg` FROM `as_table_log_202401` `c` WHERE ( `c`.`id` = `a`.`id` ) limit 0,1) AS `Name` FROM `as_table_log` `a` Left JOIN `as_table_log_202401` `b` ON ( `a`.`id` = `b`.`id` ) WHERE ( `a`.`id` = @id0 )
但是如果把where放到前面
db.Queryable<AsTableLog>().ClearFilter()
.Where(a => a.id == "1")
.LeftJoin<AsTableLog202401>((a, b) => a.id == b.id)
.Select((a, b) => new
{
a.id,
Name=SqlFunc.Subqueryable<AsTableLog202401>().Where(c=>c.id==a.id).Select(c=>c.msg)
})
.ToList();
生成的sql:
SELECT `a`.`id` AS `id` , (SELECT `c`.`msg` FROM `as_table_log_202401` `c` WHERE ( `c`.`id` = `a`.`id` ) limit 0,1) AS `Name` FROM (SELECT * FROM (SELECT `id`,`msg`,`createtime`,`dafsdg111111`,`IsDelete` FROM `as_table_log` WHERE ( `id` = @id0 ) ) MergeTable ) `a` Left JOIN `as_table_log_202401` `b` ON ( `a`.`id` = `b`.`id` ) AND ( `b`.`IsDelete` = @IsDelete1 ) WHERE ( `a`.`IsDelete` = @IsDelete1 )
过滤器好像都没清掉,这是正常情况吗
热忱回答(1)
-
fate sta VIP0
2024/12/26.ClearFilter()
.ToList();
写到tolist前
0 回复