在投影中重用组件(NHibernate)
是否可以在投影中重用组件映射 以下是供应商实体的映射:在投影中重用组件(NHibernate),nhibernate,components,dto,projection,Nhibernate,Components,Dto,Projection,是否可以在投影中重用组件映射 以下是供应商实体的映射: <class name="Vendor" table="vendor"> ... <property name="Name" column="Name" /> <component name="Address" class="MyProject.Address, MyAssembly" > <property name="Street" column
<class name="Vendor" table="vendor">
...
<property name="Name" column="Name" />
<component name="Address" class="MyProject.Address, MyAssembly" >
<property name="Street" column="street" />
<property name="City" column="City" />
</component>
</class>
在不将地址拆分到自己的表中的情况下,这是可能的吗
谢谢 我认为这应该“起作用”:
Session.QueryOver<Vendor>()
.SelectList(builder =>
builder.Select(x => x.Name)
.Select(x => x.Address))
.TransformUsing(Transformers.AliasToBean<VendorDTO>())
.List<VendorDTO>();
Session.QueryOver()
.SelectList(生成器=>
builder.Select(x=>x.Name)
.选择(x=>x.Address))
.TransformUsing(Transformers.AliasToBean())
.List();
是否需要查询?“在投影中重用组件映射”是什么意思?我不明白这个问题…可能的提示-你可以编写自己的结果转换器;您可以尝试使用HQL构造新地址();我没有试过这两种方法,所以只是提示。是的,我希望得到一个类似于以下内容的查询:从供应商处选择new VendorTo(vendor.Name,vendor.Address),谢谢您的提示。选择new VendorTo(vendor.Name,vendor.Address)不起作用?我认为您应该能够使用别名BeanResultTransformer实现这一点
Session.QueryOver<Vendor>()
.SelectList(builder =>
builder.Select(x => x.Name)
.Select(x => x.Address))
.TransformUsing(Transformers.AliasToBean<VendorDTO>())
.List<VendorDTO>();