拥有这样的 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 类型的属性
尝试这个:
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)
参考这里。
| 归档时间: |
|
| 查看次数: |
2303 次 |
| 最近记录: |