Я использую nHibernate 3.2.0.4000. Я написал этот запрос, используя nHibernate.LinqNotSupportedException, когда я использую метод в разделе where
var entities = (from t in this.Session.Query<Task>()
where NotIn(t, role.Tasks)
select t).ToList();
Вот определение метода NotIn()
private bool NotIn(Task t, IEnumerable<TaskDto> tasks)
{
foreach (var task in tasks)
{
if (t.Name == task.Name) return false;
}
return true;
}
Когда я исполняющим этот запрос, я получил сообщение об ошибке: NotSupportedException
Boolean NotIn(Probel.NDoctor.Domain.DAL.Entities.Task, System.Collections.Generic.IEnumerable`1[Probel.NDoctor.Domain.DTO.Objects.TaskDto])
Я нашел решение non Linq, которое менее читаемо, но я все же хочу, по крайней мере, понять, почему невозможно создайте такой запрос Linq.
Заранее благодарю вас за помощь!
Возможно, вы получите это, потому что LINQ не знает, как преобразовать ваш метод в SQL. Вы можете сказать, как это сделать, но я думаю, что это требует довольно много работы, используя деревья выражений. –
Будет что-то вроде 'where! Role.Tasks.Contains (t.Name)' work? –