考虑这些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
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的片段,并且是实体栏的PropB属性。
ISQLQuery.AddEntity()
因为这样会产生托管实体,而我不能使用托管实体。获取的条形图是条形图的版本,因此每行的相同Id将终止NHibernate引擎。