クエリにいくつかのフィルターを適用する必要がある状況があるため、フィルターを表すクラスがあります。
public class ReportNoteFilterDto
{
public int Year { get; set; }
public int Month { get; set; }
}
このフィルターに従ってデータを選択する必要があります。
var query = _db.User;
if (filter.Month > 0 && filter.Month <= 12)
query.Select(u => new {
User = u,
Notes = u.Notes.Where(n => n.Begin.Month == filter.Month)
});
if (filter.Year > 2011)
query.Select(u => new
{
User = u,
Notes = u.Notes.Where(n => n.Begin.Year == filter.Year)
});
var results = query.Include("Notes.Foo.Bar").ToList(); //doesn't work
Notes.Foo.Bar も選択する必要があります。
この複数のフィルターを実行するにはどうすればよいですか?