2010-09-07 31 views
2

對NHibernate運行原始SQL,然後使用AutoMapper將它推入List的最佳方式是什麼?NHibernate和AutoMapper

例子:

public virtual List<T> GetList<T>(string mainsql) 
{ 
    IQuery q = GetSession().CreateSQLQuery(mainsql); 
    IEnumerable srcAllRows = q.List(); 
    List<T> targetAllRows = new List<T>(); 
    *** do AutoMapper thing to get srcAllRow to targetAllRows *** 
    return targetAllRows; 
} 

回答

0

這是我結束了在做AutoMapper事情部分

public virtual List<T> GetList<T>(string mainSql) 
{ 
    DataTable ldt = new DataTable();   
    StartReader(mainSql); //load a reader with data. 

    ldt.Load(reader); 
    DataTableReader rdr = ldt.CreateDataReader(); 

    return (List<T>)Mapper.Map<IDataReader, IList<T>>(rdr); 
}