Nhibernate 在Hibernate HQL更新查询中使用联接

Nhibernate 在Hibernate HQL更新查询中使用联接,nhibernate,join,hql,Nhibernate,Join,Hql,只是告诉我“字典中没有给定的键。” 是的,关系按预期工作,可以进行选择…好的,解决了这个问题,似乎您必须进行子查询 string query = "update User u set u.PointsTotal = 1 join u.Rounds r where r.RoundId = :round and (r.Row1 & :val) > 0"; NHibernateSession.CreateQuery(query) .SetByte("val", (byte)va

只是告诉我“字典中没有给定的键。”


是的,关系按预期工作,可以进行选择…

好的,解决了这个问题,似乎您必须进行子查询

string query = "update User u set u.PointsTotal = 1 join u.Rounds r where r.RoundId = :round and (r.Row1 & :val) > 0";

NHibernateSession.CreateQuery(query)
    .SetByte("val", (byte)val)
    .SetInt32("round", roundId)
    .ExecuteUpdate();

哎呀!我已经找了两天了!非常感谢!:-)
string query = "update User u set u.PointsTotal = 1 where u.Id in (select u2.Id from User u2 join u2.Rounds r where r.RoundId = :round and (r.Row1 & :val) > 0)";

NHibernateSession.CreateQuery(query)
    .SetByte("val", (byte)val)
    .SetInt32("round", roundId)
    .ExecuteUpdate();