Select 在一个查询中检索多个实体时出现NHibernate错误system.object[]

Select 在一个查询中检索多个实体时出现NHibernate错误system.object[],select,nhibernate,hql,Select,Nhibernate,Hql,我有这样一个HQL查询: string QueryString = select client, transporter from BaseClient as client, BaseTrans as transporter where client.tr = transporter.Id and transporter.badge = 1 order by transporter.date; IQuery requete = this.CreateQuery

我有这样一个HQL查询:

 string  QueryString =   select client, transporter 
    from BaseClient as client, BaseTrans as transporter
    where client.tr = transporter.Id and transporter.badge = 1
    order by transporter.date;
IQuery requete = this.CreateQuery(QueryString);

var result = requete.List();

var clients = result[0] as IEnumerable<Client>;
但是当我使用此
hql
时,我收到以下错误:

“System.Object[]”
不是类型
“xxx”
,不能在此常规集合中使用。 参数名称:value

就像but一样,当我在select中省略
Transporter
实体时,它就起作用了

比如:

string  QueryString =  select client
 from BaseClient as client, BaseTrans as transporter 
 where client.tr = transporter.Id and transporter.badge = 1
 order by transporter.date;
但我的选择中需要transporter,因为我使用order by

顺便说一下,我有2个hbm Client.hbm.xml和Transporter.hbm.xml。每个hbm都有自己的类和表

我称之为:

IQuery requete = this.CreateQuery(QueryString);

   IList<Client> executions = requete.List<Client>();
iQueryRequete=this.CreateQuery(QueryString);
IList executions=requete.List();

当hibernate尝试转换为列表时,它挂起在这一行,这是因为结果集可能是一个多维数组,其中第一列表示客户机,第二列包含转运器

如果像这样更改代码,会发生什么情况:

 string  QueryString =   select client, transporter 
    from BaseClient as client, BaseTrans as transporter
    where client.tr = transporter.Id and transporter.badge = 1
    order by transporter.date;
IQuery requete = this.CreateQuery(QueryString);

var result = requete.List();

var clients = result[0] as IEnumerable<Client>;
iQueryRequete=this.CreateQuery(QueryString);
var result=requete.List();
var clients=结果[0]为IEnumerable;

(我没有在这个系统上安装NHibernate,所以我不能在不创建和设置新项目的情况下快速测试一些东西。

您的代码在您称之为HQL的地方看起来如何?谢谢您的回答,我修改了我的问题。我加了一行我怎么称呼它