如何使用可为空属性转换 DTO 中的 SQL 查询?

Apo*_*sis 5 nhibernate

拥有这样的 DTO:

public class CustomerDTO
{
     public int Id{get; set;}
     public int? Reference {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能从

var q =_session.CreateSQLQuery("SELECT Id, Reference FROM customers")
Run Code Online (Sandbox Code Playgroud)

如果我使用

q.SetResultTransformer(Transformers.AliasToBean<CustomerDTO>)
Run Code Online (Sandbox Code Playgroud)

我收到以下异常:

NHibernate.PropertyAccessException : System.Int32 类型不能分配给 Customer.Reference 的 System.Nullable`1[System.Int32] setter 类型的属性

Naj*_*era 5

尝试这个:

var customers = _session.CreateSQLQuery("SELECT Id, Reference FROM customers")
    .AddScalar("Id", NHibernateUtil.Int32)
    .AddScalar("Reference", NHibernateUtil.Int32)
    .SetResultTransformer(Transformers.AliasToBean<CustomerDTO>())
    .List<CustomerDTO>();
Run Code Online (Sandbox Code Playgroud)

参考这里