在投影中重用组件(NHibernate)

时间:2009-09-25 21:38:03

标签: 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="street" />
       <property name="City" column="City" />
     </component>
   </class>

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

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

}

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

如果没有将Address分成自己的表,这可能吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我相信这应该“正常”:

Session.QueryOver<Vendor>()
    .SelectList(builder =>
        builder.Select(x => x.Name)
            .Select(x => x.Address))
    .TransformUsing(Transformers.AliasToBean<VendorDTO>())
    .List<VendorDTO>();