Nhibernate NHibertate映射字典查询

Nhibernate NHibertate映射字典查询,nhibernate,dictionary,hql,queryover,Nhibernate,Dictionary,Hql,Queryover,你能帮我查询一下吗。 还有下一个具有映射的对象: public ObjectkState { public long Id {get;set;} public IDictionary<string,string> Context {get;set;} public string Name {get; set;} } 请帮助我进行如下查询:查找Name=“New”和上下文包含键“TaskId”和值“3”的所有ObjectState。Γn幸运的是,我找不到任何关于如何查找映射的IDic

你能帮我查询一下吗。 还有下一个具有映射的对象:

public ObjectkState
{
public long Id {get;set;}
public IDictionary<string,string> Context {get;set;}
public string Name {get; set;}
}

请帮助我进行如下查询:查找Name=“New”和上下文包含键“TaskId”和值“3”的所有ObjectState。Γn幸运的是,我找不到任何关于如何查找映射的IDictionary的示例

您应该能够使用Linq来实现NHibernate。您也可以使用HQL

也许是这样的:

   session.Query<ObjectStateMap>()
            .Where(x => x.Name == "New")
            .Where(x => x.Context.ContainsKey("SubscriptionTypeID"))
            .ToList();
session.Query()
。其中(x=>x.Name==“新建”)
.Where(x=>x.Context.ContainsKey(“SubscriptionTypeID”))
.ToList();
我知道我忽略了值限制,但这很容易添加进去


虽然我在QueryOver很难找到这个功能。

也许你应该考虑使用包装对象列表而不是字典?
   session.Query<ObjectStateMap>()
            .Where(x => x.Name == "New")
            .Where(x => x.Context.ContainsKey("SubscriptionTypeID"))
            .ToList();