Linq - NHibernate - получить все классы, где свойство словаря содержит один из элементов из моего списка - PullRequest
0 голосов
/ 24 июня 2011

У меня есть класс foo, такой как

foo 
{
Dictionary<string, Blubb> blubbDict {get;set;}
Dictionary<Bar, string> barDict {get;set;}
}

Теперь я хотел бы загрузить все объекты из базы данных, где blubbDict содержит ключ "FooBar" и где barDict содержит любые объекты Bar, которые у меня естьлокально в списке barList.

Что я получил до сих пор:

var fooQuery = from c in session.Query<Foo>()
               where c.blubbDict.ContainsKey("FooBar")
               select c;

, который работает до сих пор.Но как насчет моего последнего состояния.Я хотел бы только объекты Foo, где оба условия соответствуют "FooBar" И ключ barDict находится в моем локальном списке.

Кто-нибудь может мне помочь?Я не могу разобраться с этой проблемой.

1 Ответ

2 голосов
/ 25 июня 2011

Никогда не пытался это сделать, поэтому я не совсем уверен, что Linq For NH поддерживает, но вы можете попробовать:

var fooQuery = session.Query<Foo>()
                      .Where(c => c.blubbDict.ContainsKey("FooBar"))
                      .Where(c => barList.Any(b => c.barDict.ContainsKey(b)));
...