C# 实体框架Linq include with where子句

C# 实体框架Linq include with where子句,c#,entity-framework,linq,C#,Entity Framework,Linq,我有听众对象和社会听众对象。观众可以有一个或多个社交观众和其他对象 我想让观众了解那些已删除column=0的社交听众 var audience = await db.Audiences.Include(A => A.AudienceUsersSources) .Include("AudienceUsersSources.AudienceUsersSourceDetails")

我有听众对象和社会听众对象。观众可以有一个或多个社交观众和其他对象

我想让观众了解那些已删除column=0的社交听众

 var audience = await db.Audiences.Include(A => A.AudienceUsersSources)
                                             .Include("AudienceUsersSources.AudienceUsersSourceDetails")
                                             .Include("SocialAudiences.AdAccount")
                                             .Where(A => A.CustomerCode == CustomerCode
                                                         && A.IsDeleted == 0
                                                         ).OrderByDescending(A => A.ID).ToListAsync();

此代码的结果是socialAudiences的受众IsDeleted=0和=1。

因为socialAudiences是一对多,所以您需要指定是希望它位于Audience.IsDeleted==0和所有socialAudiences.IsDeleted==0的位置,还是只有1 IsDeleted==0。对于后者,请尝试:

var audience = await db.Audiences
                       .Include(a => a.AudienceUsersSources.AudienceUsersSourceDetails)
                       .Include(a => a.SocialAudiences.AdAccount)
                       .Where(a => a.CustomerCode == CustomerCode &&
                                   a.IsDeleted == 0 &&
                                   a.SocialAudiences.Any(sa => sa.IsDeleted == 0))
                       .OrderByDescending(A => A.ID)
                       .ToListAsync();

如果您要求所有子项的IsDeleted==0,则使用
all()
而不是
Any()

您的问题有点不清楚。你能发布听众和社交听众课程吗?你需要听众IsDeleted=0或社交听众IsDeleted=0吗?@adityaw我需要听众IsDeleted=0和社交听众IsDeleted=0你可以试试这样的方法()我不明白你的主张