在NHibernate中使用“In”限制进行收集

时间:2010-08-12 16:50:21

标签: c# nhibernate

假设我有4个班级

学生 { int StudentId,字符串 StudentName, IList< BaseMarks> StudentMarks}

BaseMarks {bool GrandTotalMarks}

SpecializedMarks:BaseMarks {Ilist Results}

结果 {string grade,bool Result}

现在, 我有一个方法填充学生列表IList和嵌套标记集合,但在内部将其强制转换为科学标记。即学生中的每个基准都可以与ScienceMarks联系,以获得实用的商标价值。

IList student_List = SomeMethodWhichRetursCollection();

问题 如何筛选在任何科目中获得“A”等级的学生。

类似的东西:

学生所在地((SpecializedMarks)Students.StudentMarks)。结果收集。任何Grade属性的值=“A”

1 个答案:

答案 0 :(得分:0)

HQL: The Hibernate Query Language

<强> LINQ for NHibernate

// using HQL
var students = Session.CreateQuery("from Students s where s.Grades = :grade")
                 .SetParameter("grade","A")
                 .List<Student>();

// using NHibernate.Linq
var students = Session.Linq<Student>().Where(s => s.Grades == "A").ToList();
// or something more complex
var students = Session.Linq<Student>()
                 .Where(s => s.Grades.Where(x => x.Score == "A"))
                 .ToList();