Я ленивую загрузку коллекций, а также потому, что в таблице человека столько полей, я пишу функцию проецирования для извлечения только определенных свойств. Он работает со свойствами, а не с коллекциями других объектов. Я был бы в порядке, если бы они были загружены в качестве прокси, и я мог бы получить их позже, но сейчас он просто загружается в нуль.Как использовать проекции NHibernate для извлечения коллекции
public IList<Person> ListTop40()
{
var list = _session.CreateCriteria(typeof(Person))
.SetProjection(Projections.ProjectionList()
.Add(Projections.Property("FirstName"))
.Add(Projections.Property("LastName"))
.Add(Projections.Property("Jersey"))
.Add(Projections.Property("FortyYard"))
.Add(Projections.Property("BenchReps"))
.Add(Projections.Property("VertJump"))
.Add(Projections.Property("ProShuttle"))
.Add(Projections.Property("LongJump"))
.Add(Projections.Property("PersonSchoolCollection"))
)
.List<IList>()
.Select(l => new Person() { FirstName = (string)l[0], LastName = (string)l[1], Jersey = (Decimal)l[2], FortyYard = (Decimal)l[3], BenchReps = (Decimal)l[4], VertJump = (Decimal)l[5], ProShuttle = (Decimal)l[6], LongJump = (Decimal)l[7], PersonSchoolCollection = (IList<Person_School>)l[8]});
IList<Person> s = list.ToList();
return s;
}
У меня есть около 80 свойств, поэтому в этой ситуации это действительно необходимо. Я уверен, что не могу получить его с помощью этого кода, но я думаю, что есть какой-то способ, с помощью которого проекции могут извлекать только 1 из многих коллекций. – luke
в этом случае у вас может быть больше удачи в группе nhusers в группах google – sirrocco
У меня есть он отправлен туда. Если я получу ответ, то плохой пост здесь. Благодарю. – luke