我有一个查询,由于性能的原因,我需要使用原始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