2010-08-10 17 views
0

我試圖從NHibernate的拿到包裝用下面的代碼:如何獲得結果根據ID與NHibernate

public Wrapper GetWrapper(int siteId, string actionName) 
    { 
     Wrapper wrapper = _session.CreateCriteria<Wrapper>() 
      //.Add(SqlExpression.Like<Wrapper>(xx => xx.SiteId, siteId))     
      .Add(SqlExpression.Equals(xx => xx.SiteId, siteId)) 
      .Add(SqlExpression.Like<Wrapper>(xx => xx.Action, actionName)) 
      .List<Wrapper>().FirstOrDefault(); 

     return wrapper; 
    } 

位是註釋掉了:

.Add(SqlExpression.Like<Wrapper>(xx => xx.SiteId, siteId))

效率低下。我需要得到Wrapper.SiteId == siteId的Wrapper,而不是它在Like siteId的地方。我應該注意到,siteId不是主鍵。有人可以告訴我,我能做些什麼來改善這一點?由於

回答

0

這工作:

public Wrapper GetWrapper(int siteId, string actionName) 
    { 
     Wrapper wrapper = _session.CreateCriteria<Wrapper>() 
      .Add<Wrapper>(x => x.SiteId == siteId) 
      .Add<Wrapper>(x => x.Action == actionName) 
      .List<Wrapper>().FirstOrDefault(); 

     return wrapper; 
    } 
相關問題