我有一个包含多个字段的类,一个是IList<KeyValuePair<string, string>>
。
public class Foo
{
public IList<KeyValuePair<string, string>> Bars { get; set; }
}
我正在使用Fluent NHibernate,该特定字段的映射如下:
HasMany(x => x.Bars).Component(Bar.Map);
和
public class BarMap : ComponentMap<KeyValuePair<string, string>>
{
public BarMap()
{
Map(x => x.Key);
Map(x => x.Value);
}
public static void Map(CompositeElementPart<KeyValuePair<string, string>> part)
{
part.Map(x => x.Key);
part.Map(x => x.Value);
}
}
使用ICriteria API,我希望能够选择所有Foo,其中Bars包含键值对{ X, Y }
,并且X和Y值的匹配不区分大小写。我怎么能这样做?
答案 0 :(得分:1)
详细描述了如何查询IDictionary的方法
并在此处记录
Description Syntax Example
A collection key {[aliasname].key} ORGID as {coll.key}
The id of an collection {[aliasname].id} EMPID as {coll.id}
The element of an collection {[aliasname].element} XID as {coll.element}
所以,我们可以做这样的事情
.Add(Restrictions.Eq("Bars.elements", searchedValue));