3

是否可以在投影中重用组件映射?

这是 Vendor 实体的映射:

   <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>

对于报告,我想在数据传输对象中检索这些供应商,但重用地址组件(因为有很多字段和一些有用的格式化行为)。

public class VendorDTO
{
    public string Name;
    public Address Address;

}

public class Address
{
    public string Street;
    public string City;
    public string SomeUsefulBehavour();
}

如果不将地址拆分到它自己的表中,这是否可能?

谢谢!

4

1 回答 1

0

我相信这应该“正常工作”:

Session.QueryOver<Vendor>()
    .SelectList(builder =>
        builder.Select(x => x.Name)
            .Select(x => x.Address))
    .TransformUsing(Transformers.AliasToBean<VendorDTO>())
    .List<VendorDTO>();
于 2012-09-24T08:04:32.220 回答