有没有办法用LINQ查询执行此操作?

时间:2010-11-05 23:36:28

标签: linq entity-framework c#-3.0 linq-to-entities

<<模糊的>>

在我的存储库中,我声明IQueryable<Foo> foosConfigEntities db = new ConfigEntities()然后我使用linq查询查询数据库

foos = from f in _db.Foos
       select f;

每个Foo都有一个EntityCollection<Bar> bars的单独集合,由实体框架自动填充。

我想在每个Foo的条形集合上遍历foos集合,并根据日期修改条形集合,如:

from foo in foos
    (from bar in foo.bars
         where bar.Date < someDate && bar.Date >= someOtherDate
         select bar)
     select foo

所以我用原始栏的子集取回所有的foos。我不知道怎么做,但我想我想在一个选择或某种类型的东西中进行选择。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:3)

from foo in foos
from bar in foo.bars
where bar.Date == DateTime.Now
select new { foo, bar }

或(已编辑,考虑到您没有Foo的相应构造函数)

from foo in foos
select new
{
  Foo = foo, 
  Bars = from bar in foo.bars
         where bar.Date == DateTime.Now
         select bar
}

这将提供“元组”的集合,其中每个元组将包含原始Foo(包含所有Bar s)以及您想要的Bar的集合。