你能用nhibernate查询帮我吗? 下一个对象有映射:
public ObjectkState
{
public long Id {get;set;}
public IDictionary<string,string> Context {get;set;}
public string Name {get; set;}
}
对象映射
public ObjectStateMap(): ClassMappublic ObjectStateMap()
{
Id(x => x.Id).GeneratedBy.Identity();
Map(x => x.Name);
HasMany(x => x.Context).Table("ContextItems").KeyColumn("TaskId")
.Cascade.All()
.AsMap("ItemKey").Element("ItemValue", c => c.Type());
}
请帮我查询:查找所有ObjectStates,其中Name =“New”,Context包含键“TaskId”和值“3”。很遗憾,我没有找到任何关于映射IDictionary的例子。
答案 0 :(得分:2)
你应该可以使用Linq来NHibernate。您也可以使用HQL。
也许是这样的:
session.Query<ObjectStateMap>()
.Where(x => x.Name == "New")
.Where(x => x.Context.ContainsKey("SubscriptionTypeID"))
.ToList();
我知道我错过了Value限制,但这很容易添加。
我很难在QueryOver中找到这个功能。