Я пытаюсь использовать QueryOver в этом сценарии:
public class Class1
{
public virtual string Name { get; set; }
public virtual string Descripton { get; set; }
public virtual Class2 { get; set; }
public virtual IList<Class3> ListClass3{ get; set; }
... //SEVERAL OTHERS LISTS, PROPERTIES
}
public class Class2
{
public virtual string Name { get; set; }
... //SEVERAL OTHERS LISTS, PROPERTIES
}
public class Class3
{
public virtual string Name { get; set; }
public virtual Class4 { get; set; }
... //SEVERAL OTHERS LISTS, PROPERTIES
}
public class Class4
{
public virtual string Prop1 { get; set; }
public virtual string Prop2{ get; set; }
... //SEVERAL OTHERS LISTS, PROPERTIES
}
И мой DTO:
public class ClassDTO
{
public string NameClass1 { get; set; }
public string DescriptonClass1 { get; set; }
public string NameClass2 { get; set; }
public virtual IList<Class3> Class3List { get; set; }
}
Моя проблема в том, как получить IList ... Без этого до сих пор все работает нормально:
Class2 class2 = null;
IList<Class3> listClass3 = null;
var queryOver = Session.QueryOver<clsClass1>();
var list = queryOver
.JoinAlias(x => x.Class2, () => class2)
.JoinAlias(x => x.ListClass3, () => listClass3, JoinType.LeftOuterJoin)
.SelectList(list => list
.Select(c2 => c2.Name).WithAlias(() => myDTO.NameClass1)
.Select(c2 => class2.Name).WithAlias(() => myDTO.NameClass2)
//NEED GET LIST<CLASS3>
)
.TransformUsing(Transformers.AliasToBean<ClassDTO>())
.List<ClassDTO>();
Это работает нормально, но мне нужно «заполнить» IList сейчас ... И, если возможно, получить только Prop1 и Prop2 из Class4 ...
Спасибо