考虑这些 POCO:
class Foo {
int Id {get;set;}
string Name {get;set;}
}
class Bar {
int Id {get;set;}
string PropA {get;set;}
Foo PropB {get;set;}
}
现在我想要实现的是使用ISQLQuery
具有根实体的Bar
来水合 PropB 属性。
ISQLQuery barsAround = nhSes.CreateSQLQuery("select b.Id, b.PropA, {????} from Bar b inner join Foo f on f.Id = b.FK_FooId");
barsAround.SetResultTransformer(Transformers.AliasToBean<Bar>());
IList<Bar> results = barsAround.List<Bar>();
{????} 中的哪里是获取 b.Id 和 b.Name 并水合实体 Bar 的属性 PropB 的片段。
我不能使用ISQLQuery.AddEntity()
,因为这会导致托管实体,我不能使用托管实体。获取的条形图是条形图的版本,因此每行的相同 Id 会杀死 NHibernate 引擎。