人大金仓数据库生成sql语句语法问题 返回
yl 发布于2周前
var list = Context.Queryable<Bis_BloodApply, Bis_BloodApplyBreedDetail>((apply, detail) => apply.ApplyCode == detail.ApplyCode)
.Where((apply, detail) => apply.HospitalCode == hospitalCode
&& detail.HospitalCode == hospitalCode
&& apply.RegisterNo == registerNo
&& apply.ApplyDateTime >= hours24Ago
&& apply.TerminationStatus == 0
&& apply.ApplyStatus > 1)
.GroupBy((apply, detail) => new { apply.RegisterNo, detail.GroupCode, detail.UnitName })
.Select((apply, detail) => new Bis_BloodAmountVo
{
RegisterNo = apply.RegisterNo,
GroupCode = detail.GroupCode,
Amount = SqlFunc.AggregateSum(detail.Quantity),
Amount_ML = SqlFunc.AggregateSum(detail.Quantity_ML),
UnitName = detail.UnitName
})
.ToList();
以上.net代码连接人大金仓数据库后,生成的sql语句如下:
SELECT "apply"."RegisterNo" AS "RegisterNo" ,
"detail"."GroupCode" AS "GroupCode" ,
SUM("detail"."Quantity") AS "Amount" ,
SUM("detail"."Quantity_ML") AS "Amount_ML" ,
"detail"."UnitName" AS "UnitName"
FROM "Bis_BloodApply" "apply" ,"Bis_BloodApplyBreedDetail" "detail"
WHERE ( "apply"."ApplyCode" = "detail"."ApplyCode" )
AND (((((( "apply".CAST("HospitalCode" AS TEXT) = N'1170' )
AND ( "detail".CAST("HospitalCode" AS TEXT) = N'1170' ))
AND ( "apply".CAST("RegisterNo" AS TEXT) = N'957758' ))
AND ( "apply"."ApplyDateTime" >= '2025-12-01 00:00:00.000' ))
AND ( "apply"."TerminationStatus" = 0 ))
AND ( "apply"."ApplyStatus" > 1 ))
GROUP BY "apply"."RegisterNo","detail"."GroupCode","detail"."UnitName"
问题是:detail.HospitalCode == hospitalCode 为什么会转换为 "detail".CAST("HospitalCode" AS TEXT) = N'1170' )
为什么会有一个CAST AS TEXT 转换,需要如何配置?
热忱回答(1)
-
fate sta VIP0
2周前1、提供金仓安装模式和版本号
//可以查看安装的模式show database_mode;//查看版本号SELECT version();2、代码有没有设置DatabaseModel
0 回复