Consulte la consulta de elementos que tienen una propiedad de diccionario que contiene un valor.

Necesito una forma de consultar en Nhibernate los elementos que tienen una propiedad de diccionario que contiene un valor.

Asumir:

public class Item
{
     public virtual IDictionary<int, string> DictionaryProperty {get; set;}
}

y mapeo:

    public ItemMap()
    {
        HasMany(x => x.DictionaryProperty)
            .Access.ReadOnlyPropertyThroughCamelCaseField(Prefix.Underscore)
            .AsMap<string>(
                index => index.Column("IDNumber").Type<int>(),
                element => element.Column("TextField").Type<string>().Length(666)
                )
            .Cascade.AllDeleteOrphan()
            .Fetch.Join();
    }

Quiero preguntar todoItems que tienen un valor de diccionario de "SomeText". El siguiente ejemplo en Linq falla:

session.Query<Item>().Where(r => r.DictionaryProperty.Any(g => g.Value == "SomeText"))

con error

cannot dereference scalar collection element: Value

Entonces, ¿hay alguna manera de lograr eso en NHibernate? Linq no es un requisito exclusivo, pero se prefiere. No es que no me interese consultar sobre diccionariollaves que se puede lograr utilizando.ContainsKey . Φορesta es similar pero no es lo mismo

Respuestas a la pregunta(1)

Su respuesta a la pregunta