我有一個查詢,由於性能的原因,我需要使用原始ADO.NET製作實際的命令(它涉及表值參數)。使用LINQ to SQL或EF,我可以簡單地將由DbCommand.ExecuteReader()
返回的DbDataReader
傳遞給DataContext.Translate<T>(DbDataReader)
或ObjectContext.Translate<T>(DbDataReader)
方法,並將結果集轉換爲對象,返回IEnumerable<T>
。NHibernate的等效LINQ to SQL的和EF的翻譯<T>()
是否有任何NHibernate的API相當於,我可以通過一個DbDataReader
/IDataReader
甚至是DbCommand
/IDbCommand
並得到NHibernate的實體回來?
或者也許有一種方法可以攔截由ISession.CreateQuery(string)
創建的命令的構造,以便我可以修改底層的DbCommand
以按我需要的方式工作?
有什麼理由不能使用'CreateSQLQuery'? – mickfold 2013-04-07 15:44:16
@penfold:是的,因爲,正如我所提到的,我需要使用表值參數。 – 2013-04-07 17:19:44