Вызов метода в классе с критериями NHibernate
Скажи, что у меня есть такой объект
public class Student{
public IList<Coursework> Courseworks{get;set;}
public string Name{get;set;}
public int Age{get;set;}
public bool HasCompletedCoursework(int courseyear, string moduleName)
{
return Courseworks.Any(x => x.Courseyear == courseyear && x.ModuleName == moduleName && IsComplete);
}
}
public class Coursework{
public int Courseyear{get;set;}
public string ModuleName{get;set;}
public bool IsComplete {get; set;}
}
Можно ли вызвать метод HasCompletedCoursework в классе Student, когда вы используете ICriteria для запроса базы данных.
Ура Колин Г
2 ответа
Решение
Нет. ICriteria предназначена для построения запросов Sql. Если вы можете изменить этот метод на некоторые критерии SQL, то да, в противном случае - нет.
Вместо использования критериев api, но вместо использования linq 2 nh api, извлечение предиката в форме Func<bool, Student>
которые могут быть использованы как Student
класс и хранилище (или тот, кто запрашивает) в форме Expression<Func<bool, Student>>
для того, чтобы БД выполняла работу.