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>
原文:https://www.cnblogs.com/gao109214/p/10830045.html