Linq包含where子句

mat*_*lin 4 linq include where-clause

嘿,所以我遇到了这样一种情况,即我将客户从数据库中拉回来并通过包含所有案例研究

return (from c in db.Clients.Include("CaseStudies")
        where c.Id == clientId
        select c).First();
Run Code Online (Sandbox Code Playgroud)

但我现在要做的是和所包含的casestudies的where子句,以便它只返回案例研究,其中deleted = false

有点像这样

return (from c in db.Clients.Include("CaseStudies")
        where c.Id == clientId
        && c.CaseStudy.Deleted == false
        select c).First();
Run Code Online (Sandbox Code Playgroud)

但这不起作用:(任何想法

Mis*_* N. 7

EF v1.0中不支持开箱即用的条件包含.但亚历克斯詹姆斯有一些hacky解决方法,因为这解释得很好:http://blogs.msdn.com/alexj/archive/2009/10/13/tip-37-how-to-do-a-conditional-include. ASPX

 var dbquery =
   from c in db.Clients
   where c.Id == clientID
   select new {
      client = c, 
      caseStudies = from cs in c.CaseStudy
                where cs.Deleted==false
                select cs
   };

return dbquery
   .AsEnumerable()
   .Select(c => c.client);
Run Code Online (Sandbox Code Playgroud)

此外,我还没有成功地使这个解决方案与多对多关系一起工作.