【问题标题】:How to include multiple where conditions using Icriteria in nhibernate如何在 nhibernate 中使用 Icriteria 包含多个 where 条件
【发布时间】:2012-04-15 17:18:26
【问题描述】:

我正在使用 nhibernate 在 MVC3 中开发应用程序 我有两个表,我想在两者之间执行连接,并且我还想包含多个 where 条件.. 我发布了所有相关的表格,以便清除要求:

First table is HobbyMaster:
HobbyId
HobbyName

Second Table is HobbyHome:
HobbyHomeId
HobbyHomeName

Third Table is HobbyDetail:
HobbyDetailId
HobbyId(Foreign Key)
HobbyHomeId(Foreign key)

Fourth Table is HobbyHomeAddress:
Id(primary key)
HobbyHomeId(Foreign key)
StateId(Foreign Key)
DistrictId(Foreign key)

Fifth Table is State:
stateid
statename

last Table is District:
districtid
districtname 

我想写一个这样的查询:

select * from HobbyHomeAddress hobadd,
              HobbyDetail hobdet 
 where hobdet.HobbyId=hobbyid 
   and hobadd.HobbyId=hobdet.HobbyId 
   and hobadd.StateId=stateid; 

我试过了,但它不工作,也给了我 NUll

 hobbyhomeaddress = session.CreateCriteria(typeof(HobbyHomeAddress))
               .CreateAlias("HobbyDetail", "HobbyDetail", NHibernate.SqlCommand.JoinType.InnerJoin)
               .Add(Expression.Eq("HobbyID", hobbyid))
               .Add(Restrictions.Eq("HobbyHomeAddress.HobbyHomeId", "HobbyDetail.HobbyHomeId"))
               .Add(Expression.Eq("ProvincialState.ProvincialStateID", stateid))
               .List<HobbyHomeAddress>();

我能够通过 ajax 获取 id,但我不明白如何触发以下查询 请帮帮我

【问题讨论】:

    标签: sql asp.net-mvc-3 nhibernate hql icriteria


    【解决方案1】:

    一个可能的问题:

    .Add(Restrictions.Eq("HobbyHomeAddress.HobbyHomeId", "HobbyDetail.HobbyHomeId"))
    

    连接的这一部分(在 SQL 中)应该在你的 nhibernate 映射中,你不需要显式指定它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多