0

我有一个查询,由于性能原因,我需要使用原始 ADO.NET 制作实际命令(它涉及表值参数)。使用 LINQ to SQL 或 EF,我可以简单地将DbDataReader返回的DbCommand.ExecuteReader()传递给DataContext.Translate<T>(DbDataReader)orObjectContext.Translate<T>(DbDataReader)方法,它将结果集转换为对象,返回一个IEnumerable<T>.

NHibernate 中是否有任何等效的 API,我可以通过DbDataReader/IDataReader甚至是DbCommand/IDbCommand并获取 NHibernate 实体?

或者也许有一种方法可以拦截由创建的命令的构造,ISession.CreateQuery(string)以便我可以修改底层DbCommand以按照我需要的方式工作?

4

1 回答 1

1

您可能可以创建一个自定义 UserType 来处理表值参数。

NHibernate 不会在任何公共方法中公开 DataReader -> 实体转换。

于 2013-04-07T17:58:56.923 回答