我的c#代码中有一个投影列表:
var criteria = DetachedCriteria.For(this.modelType);
for (int i = 0; i < this.fields.Length; i++)
projections.Add(Projections.Property(this.fields[i]));
if (fields.Length > 0)
criteria.SetProjection(projections);
如果我在投影中没有设置任何字段,我的回复就是:
但如果我在代码中设置了投影,我的结果如下:
如何在动态DTO对象中使用投影转换列表?
答案 0 :(得分:1)
我们需要的是变压器:
criteria
.SetResultTransformer(
NHibernate.Transform.Transformers.AliasToBean<MyEntity>())
或没有通用
criteria
.SetResultTransformer(
NHibernate.Transform.Transformers.AliasToBean(this.modelType))
变形金刚的要点是使用锯齿(参见.As()
):
.SetProjection(Projections.ProjectionList()
.Add(Projections.Property("Property1").As("Property1"))
.Add(Projections.Property("Property2").As("Property2"))
.Add(Projections.Property("Property3").As("Property3"))
)
在这里查看更多内容,例如: