ExecuteQueryForRowDelegate & ExecuteQueryForMapWithRowDelegate In
CachingStatement Class
----------------------------------------------------------------------------------------
Key: IBATISNET-157
URL: http://issues.apache.org/jira/browse/IBATISNET-157
Project: iBatis for .NET
Type: Improvement
Components: DataMapper
Versions: DataMapper 1.3
Reporter: Chris Potter
Hi All:
I'd like to propose the following changes to the 2 methods described in the
Subject above. Please let me know your thoughts on this proposed change. I
realize it requires iteration through the cached result collection after
retrieving the collection from the cache. This still, however, seems to
provide a measurable performance benefit over going to the database each time
the query is executed.
public IList ExecuteQueryForRowDelegate(IDalSession session, object
parameterObject, SqlMapper.RowDelegate rowDelegate)
{
//Original code: return
_mappedStatement.ExecuteQueryForRowDelegate(session, parameterObject,
rowDelegate);
IList list = this.ExecuteQueryForList(session, parameterObject);
IList delegateList = new ArrayList(list.Count);
foreach (object obj in list)
{
rowDelegate(obj, parameterObject, delegateList);
}
return delegateList;
}
public IDictionary ExecuteQueryForMapWithRowDelegate(IDalSession session,
object parameterObject, string keyProperty, string valueProperty,
SqlMapper.DictionaryRowDelegate rowDelegate)
{
//Original code: return
_mappedStatement.ExecuteQueryForMapWithRowDelegate(session, parameterObject,
keyProperty, valueProperty, rowDelegate);
IDictionary map = this.ExecuteQueryForMap(session, parameterObject,
keyProperty, valueProperty);
IDictionary delegateMap = new Hashtable(map.Count);
foreach (object obj in map.Values)
{
object key = ObjectProbe.GetPropertyValue(obj, keyProperty);
object value = obj;
if (valueProperty != null)
{
value = ObjectProbe.GetPropertyValue(obj, valueProperty);
}
rowDelegate(key, value, parameterObject, delegateMap);
}
return delegateMap;
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira