NHibernate To DataSet

Ayende just posted a very simple solution to converting the result of an NHibernate Query / Criteria to a DataSet. Here is something that I have used in the past.

public DataTable CriteriaToDataTable<CriteriaClass>(ICriteria query,
																										String dataTableName,
																										params String[] properties)
{
	DataTable dt = new DataTable(dataTableName);
	int i;  

	foreach (String prop in properties)
		dt.Columns.Add(prop.Replace('.', '_'), ReflectionUtil.GetPropertyType(typeof (CriteriaClass), prop));  

	foreach (Object obj in query.List())
	{
		i = 0;
		Object[] vals = new Object[properties.Length];
		foreach (String prop in properties)
		{
			vals[i] = ReflectionUtil.GetPropertyValue(obj, prop);
			i++;
		}
		dt.Rows.Add(vals);
	}
	return dt;
}

Read more »