Только что начав с NHibernate и используя Nhib 3.0 (3.0.0.2001) Linq со следующими моделями
public class Request
{
public virtual Guid Id { get; set; }
public virtual State {get;set;}
}
public class State
{
public virtual Guid Id {get;set;}
}
Итак, я просто пытаюсь получить запрос на основе его идентификатора состояния.
_session.Query<Request>().Where(x => x.State.Id==someGuidValue).FirstOrDefault();
Кажется довольно простым, но это приводит к ошибке sql, основанной на сгенерированном sql, где похоже, что параметр @ p0 отсутствует, хотя не уверен, зачем его сюда включать.
{"Line 1: Incorrect syntax near '('."}
select TOP (@p0) requ0_.Id as Id0_
, requ0_.State_id as State8_0_
from [Request] requ0_ where requ0_.State_id=@p1 ]
Name:p1 - Value:a2e63925-6628-4786-a621-9e5200d5ab71
Однако, использование SingleOrDefault работает, просто отлично.
_session.Query<Request>().Where(x => x.State.Id==someGuidValue).SingleOrDefault();
Любое понимание будет оценено. Спасибо