Tôi đang tải các bộ sưu tập và cũng vì có quá nhiều trường trong bảng người, tôi đang viết một hàm chiếu để chỉ truy xuất các thuộc tính nhất định. Nó hoạt động với các thuộc tính, không chỉ là các bộ sưu tập của các thực thể khác. Tôi sẽ ổn nếu họ được nạp vào như là proxy và tôi có thể nhận được chúng sau này, nhưng ngay bây giờ nó chỉ tải trong null.Làm thế nào để sử dụng NHibernate Projections để lấy một bộ sưu tập
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;
}
Tôi có khoảng 80 tài sản, vì vậy nó thực sự là cần thiết trong tình huống này.Tôi khá chắc chắn tôi không thể lấy nó với mã này, nhưng tôi nghĩ rằng có một số cách với dự để có thể lấy chỉ 1 trong số nhiều bộ sưu tập – luke
trường hợp đó, bạn có thể có nhiều may mắn hơn trong nhóm nhusers trên google groups – sirrocco
Tôi có nó được đăng ở đó. Nếu tôi nhận được câu trả lời, hãy đăng nó lên đây. Cảm ơn. – luke