核心查詢方法完全避開反射,執行速度等同手寫 ADO.NET 代碼:
public ArrayList ReadObjects(string strSQL, Type RecordType) {
CheckConnection();
if (strSQL == null) throw new ArgumentNullException(nameof(strSQL));
if (RecordType == null) throw new ArgumentNullException(nameof(RecordType));
var helper = GetHelper(RecordType);
using (var cmd = Connection.CreateCommand()) {
cmd.CommandText = strSQL;
using (var reader = cmd.ExecuteReader())
return helper.ReadRecords(reader, 0);
}
}
衍生出 ReadObject、ReadAllObjects 等便利方法,原理一致。
流程同 InsertObject,委派 FillDeleteCommand 構建命令後執行。
流程同 InsertObject,委派 FillUpdateCommand 構建命令後執行。