Queryable 的Where条件表达式 中 contains 与 || 连用时候生成的 sql语句少空格? 返回
Queryable 的Where条件表达式 中 contains 与 || 连用时候生成的 sql语句中的少了个空格?
var orderBOMList = db.Queryable<Entities.OrderBOM,Entities.SignApplication> ((bom, sign) => new JoinQueryInfos(JoinType.Left, bom.AppId == sign.Id)) .WhereIF(filter.UnFinished, (bom, sign) => bom.TotalQty > bom.SaleQty) //Unfinished .WhereIF(filter.ByOrderIds, (bom, sign) => filter.OrderIds.Contains(bom.OrderId)) //orderIds .Where((bom, sign) => bom.Saler == filter.Saler || string.IsNullOrWhiteSpace(filter.Saler)) //Saler .Where((bom, sign) => bom.PN.Contains(filter.PN) || string.IsNullOrWhiteSpace(filter.PN)) //PN like .Where((bom, sign) => bom.PNName.Contains(filter.PNName) || string.IsNullOrWhiteSpace(filter.PNName)) //PNNameLike .Where((bom, sign) => bom.IsDel ==0 && sign.IsDel == 0) .Where((bom, sign) => sign.SignFlag == 2) //签核完成 .ToList() .Select(s=>s.Map<DTO.OrderBOM>());
SELECT `bom`.`OrderId`,`bom`.`AppId`,`bom`.`AppStatus`,`bom`.`Category`,`bom`.`SKUNO`,`bom`.`Version`,`bom`.`PN`,`bom`.`PNName`,`bom`.`MaterialType`,`bom`.`MaterialSN`,`bom`.`UnitQty`,`bom`.`BackupQty`,`bom`.`TotalQty`,`bom`.`Texture`,`bom`.`Process`,`bom`.`Saler`,`bom`.`ItemNo`,`bom`.`Remark`,`bom`.`EditBy`,`bom`.`EditTime`,`bom`.`SaleQty`,`bom`.`Id`,`bom`.`IsDel` FROM `JingjingMES`.`OrderBOM` bom Left JOIN `JingjingMES`.`SignApplication` sign ON ( `bom`.`AppId` = `sign`.`Id` ) WHERE (`bom`.`OrderId` IN ('12')) AND (( `bom`.`Saler` = @Saler1 ) OR @constant2) AND ((`bom`.`PN` like concat('%',@MethodConst3,'%')) OR@constant4) AND ((`bom`.`PNName` like concat('%',@MethodConst5,'%')) OR@constant6) AND (( `bom`.`IsDel` = @IsDel7 ) AND ( `sign`.`IsDel` = @IsDel8 )) AND ( `sign`.`SignFlag` = @SignFlag9 )
{"@Saler1":null,"@constant2":true,"@MethodConst3":null,"@constant4":true,"@MethodConst5":null,"@constant6":true,"@IsDel7":0,"@IsDel8":0,"@SignFlag9":2}
热忱回答(3)
-
大内泰迪 VIP0
2020/12/4.WhereIF(!string.IsNullOrWhiteSpace(filter.PN),(bom, sign) => bom.PN.Contains(filter.PN)) //PN like
.WhereIF(!string.IsNullOrWhiteSpace(filter.PNName),(bom, sign) => bom.PNName.Contains(filter.PNName)) //PNNameLike
先用 whereif 解决了。
哥们还是看看 是不是bug
0 回复 -
fate stay night VIP0
2020/12/4@大内泰迪:是 bug 换这个函数 IsNullOrEmpty 就行了
0 回复 -
大内泰迪 VIP0
2020/12/4@fate stay night:好的 多谢
0 回复