Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在嵌套linq查询字段中搜索一组单词_C#_Mysql_Linq - Fatal编程技术网

C# 如何在嵌套linq查询字段中搜索一组单词

C# 如何在嵌套linq查询字段中搜索一组单词,c#,mysql,linq,C#,Mysql,Linq,//我尝试使用下面的查询实现全局搜索 //我的linq查询: var query = (from ug in db.SC_UserGroup where ug.IsDeleted == false && ug.TenantID == tenantId && ug.ParentGroup == defaultGuid && ug.GroupTypeID == manualCodeTypeId sel

//我尝试使用下面的查询实现全局搜索 //我的linq查询:

var query = (from ug in db.SC_UserGroup
             where ug.IsDeleted == false && ug.TenantID == tenantId && ug.ParentGroup == defaultGuid && ug.GroupTypeID == manualCodeTypeId
             select new
             {
                 GroupID = ug.ID,
                 GroupTypeID = ug.GroupTypeID,
                 GroupName = ug.GroupName,
                 Description = ug.Description,
                 TenantId = ug.TenantID,
                 SubGroups = (from sug in db.SC_UserGroup
                              where sug.ParentGroup == ug.ID && sug.IsDeleted == false && sug.TenantID == tenantId
                              select new
                              {
                                  GroupID = sug.ID,
                                  GroupTypeID = sug.GroupTypeID,
                                  GroupName = sug.GroupName,
                                  Description = sug.Description,
                                  TenantId = sug.TenantID,
                                  users = (from sugm in db.SC_UserGroupMap
                                           join su in db.SC_User on sugm.UserID equals su.ID
                                           join usertenantmap in db.SC_UserTenantMap on su.ID equals usertenantmap.UserID
                                           join userCredential in db.SC_UserCredential on usertenantmap.UserCredentialID equals userCredential.ID
                                           where su.IsDeleted.Value == false && sugm.UserGroupID == sug.ID && sugm.IsDeleted == false
                                           select new
                                           {
                                               UserId = su.ID,
                                               UserName = (su.FirstName + " " + su.LastName),
                                               EmailId = userCredential.Email
                                           }).Distinct().ToList()
                              })                             
             });
// here my search array contails the list of words to search 
if (searchArray[0] != string.Empty)
{
    //like this i am able to search on GroupName and Description column
    query = query.Where(x => searchArray.All(y => x.GroupName.Contains(y) || x.Description.Contains(y)));                     
}
我的问题:
我想搜索子查询字段的字段(即当前上下文中的子组字段)

如果你想在
子组
中的字段上执行相同的搜索,你必须使用
All
Any
,这取决于你想让
子组
中的所有项目匹配还是至少一个

query = query.Where(
    x => searchArray.All(
        y => x.GroupName.Contains(y) ||            
             x.Description.Contains(y) ||
             x.SubGroups.Any(sg => sg.GroupName.Contains(y) ||
             x.SubGroups.Any(sg => sg.Description.Contains(y))));                     
太多了:)@juharr从早上就开始挣扎