1.alias同一别名在一个数据库中加载的config下所有xml最好出现一次,否则会报错
<alias>
<typeAlias alias="WODefaultReceiverModel" type="Teld.MRP.WorkOrderManagement.Models.WODefaultReceiverModel,Teld.MRP.WorkOrderManagement.Models"/>
</alias>
2.批量插入,传入一个List,List必须要让实体类包装起来
如实体类:WOSCRecordsModelList包装
WOStateChangeRecordsModelList
<!--新增运营工单记录保存-->
<insert id="AddWOStateChangeRecords" parameterClass="WOSCRecordsModelList">
BEGIN
<iterate property="WOStateChangeRecordsModelList" open="" close="" conjunction="">
INSERT INTO dbo.WO_WorkOrderStateChangeRecords
(WOStateChangeID, WOID, WOFlowType, WOStatesChangeNum, WOBeforeChangeReciver, WOBeforeChangeState,
WOAfterChangeState,WOAfterChangeReciver,WOStatusChanger,WOChangeTime,WOIsNoticed,WOStateChangeReason,
Creater,Createtime, LastModifier, LastModifyTime)
VALUES
(NEWID(), #WOStateChangeRecordsModelList[].WOID#, #WOStateChangeRecordsModelList[].WOFlowType#,
#WOStateChangeRecordsModelList[].WOStatesChangeNum#, #WOStateChangeRecordsModelList[].WOBeforeChangeReciver#, #WOStateChangeRecordsModelList[].WOBeforeChangeState#,
#WOStateChangeRecordsModelList[].WOAfterChangeState#,#WOStateChangeRecordsModelList[].WOAfterChangeReciver#, #WOStateChangeRecordsModelList[].WOStatusChanger#, GETDATE(), #WOStateChangeRecordsModelList[].WOIsNoticed#,#WOStateChangeRecordsModelList[].WOStateChangeReason#,
#WOStateChangeRecordsModelList[].Creator#, GETDATE(), #WOStateChangeRecordsModelList[].LastModifier#,GETDATE())
</iterate>
END
</insert>
3.parameterClass的类型,如果是dictionary则必须用dynamic取值不可以直接用# #去取值,如果用# #取值,parameterClass传入用string
<!--工单业务帮助列表数量-->
<select id="GetWOBusinessTypeHelpCount" resultClass="int" parameterClass="System.Collections.IDictionary">
SELECT COUNT(1) count
FROM WO_WorkOrderBusinessType wowobusit WITH(NOLOCK)
LEFT JOIN WO_WorkOrderBigType wowobt WITH(NOLOCK) ON wowobusit.WOBigTypeID=wowobt.WOBigTypeID
LEFT JOIN WO_WorkOrderWorkLevel wowowl WITH(NOLOCK) ON wowowl.WOWorkLevelID=wowobusit.WOWorkLevelID
LEFT JOIN WO_WorkOrderWorkClassify wowowc WITH(NOLOCK) ON wowowc.WOWorkClassifyID=wowobusit.WOWorkClassifyID
LEFT JOIN WO_WorkOrderSourceType wowost WITH(NOLOCK) ON wowost.WOSourceTypeID=wowobusit.WOSourceTypeID
WHERE 1=1
<dynamic prepend="AND">
<isParameterPresent>
<isEmpty property="FieldName">
<isNotEmpty prepend="AND" property="FieldValue">
(wowobusit.WOBusinessTypeCode LIKE '%'+#FieldValue#+'%' OR wowobusit.WOBusinessTypeName LIKE '%'+#FieldValue#+'%')
</isNotEmpty>
</isEmpty>
<isNotEmpty property="FieldName">
<isNotEmpty prepend="AND" property="FieldValue">
<isEqual property="FieldName" compareValue="Code">
wowobusit.WOBusinessTypeCode LIKE '%'+#FieldValue#+'%'
</isEqual>
<isEqual property="FieldName" compareValue="Name">
wowobusit.WOBusinessTypeName LIKE '%'+#FieldValue#+'%'
</isEqual>
</isNotEmpty>
</isNotEmpty>
</isParameterPresent>
</dynamic>
</select>
<!--运营子集工单记录条数与ID查询-->
<select id="GetWOSubsetStateChangeRecordsCount" resultClass="WOChangeBeforeModel" parameterClass="string">
SELECT WOID,Count(1) RecordTotal FROM WO_WorkOrderStateChangeRecords WITH(NOLock) WHERE WOID in (select WOID from WO_OperaionWorkOrderBills where OWOParentWOID=#WOID# and OWOState <![CDATA[!= ]]>'OWO_Completed' ) group by WOID
</select>

浙公网安备 33010602011771号