NHibernate投影/转换强类型As()

时间:2013-09-16 12:35:14

标签: c# nhibernate nhibernate-projections

我想填写以下对象。我当前的解决方案已对字符串LabelTypeLanguage进行了硬编码。这可以避免吗?

public class UniqueLabel
{
    public string LabelType { get; set; }
    public Language Language { get; set; }
}


public IEnumerable<UniqueLabel> GetAllDistinctLabelTypeElements()
{
    var query = Session.QueryOver<Element>();
    query.Select(Projections.Distinct(Projections.ProjectionList()
        .Add(Projections.Property<Element>(e => e.ColumnName).As("LabelType"))
        .Add(Projections.Property<Element>(e => e.LanguageCode).As("Language"))
        ));
    query.TransformUsing(Transformers.AliasToBean<UniqueLabel>());
    return query.List<UniqueLabel>();
}

所以我最终会得到类似的东西:

.Add(Projections
    .Property<Element>(e => e.ColumnName)
    .As<UniqueLabel>(l => l.LabelType))

我尝试重命名UniqueLabel中的属性以匹配Element中的属性但不起作用。

0 个答案:

没有答案