2
只是NHibernate的開始,並在使用Nhib 3.0的(3.0.0.2001)的LINQ與以下車型Nhibernate如何對待它們有什麼區別.FirstOrDefault vs .SingleOrDefault?可能的錯誤?
public class Request
{
public virtual Guid Id { get; set; }
public virtual State {get;set;}
}
public class State
{
public virtual Guid Id {get;set;}
}
所以我只是想找回基於其請求的ID狀態。
_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 [email protected] ]
Name:p1 - Value:a2e63925-6628-4786-a621-9e5200d5ab71
但是,使用SingleOrDefault工作,很好。
_session.Query<Request>().Where(x => x.State.Id==someGuidValue).SingleOrDefault();
任何洞察力將不勝感激。謝謝