Linq - NHibernate - 获取所有类,其中dictionary属性包含我列表中的一个项目

时间:2011-06-24 15:14:02

标签: c# .net linq nhibernate linq-to-nhibernate

我正在上课类似

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

现在我想加载数据库中的所有对象,其中blubbDict包含一个键“FooBar” 并且barDict包含我在List barList中本地拥有的任何对象Bar。

到目前为止我得到了什么:

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

到目前为止有效。 但是我的最后一个条件呢。我只想要两个条件符合“FooBar”的Foo对象,而barDict的键在我的本地列表中。

任何人都可以帮助我吗?我无法理解这个问题。

1 个答案:

答案 0 :(得分:2)

从未尝试过这样做,所以我不确定Linq For NH支持它,但你可以试试:

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