1

我正在开发一个使用 EF 和 mysql 的 Web 应用程序。搜索变得越来越复杂,所以我考虑创建一个 searchTable,我将在其中放置搜索过滤器所需的所有数据。对于一对一的表来说效果很好,但是一对多呢,我应该如何将它保存在一行中?例如经验或资格等问题是如何将该部分放入 EF/Linq 的搜索条件中?比如获得具有mba资格的用户。

  for (int i = 0; i < searchFilter.Count; i++)
        {
            keyValuePair = searchFilter.ElementAt(i);
            if (keyValuePair.Key.Equals("FullName"))
            {
                whereClause.Add("FullName.Contains(@" + i + ")");
                whereValues.Add(keyValuePair.Value);
            }

           ....


            if (keyValuePair.Key.Equals("City"))
            {
                whereClause.Add("AddressCity.Contains(@" + i + ")");
                whereValues.Add(keyValuePair.Value);
            }
        }

        StringBuilder str = new StringBuilder();
        for (int i = 0; i < whereClause.Count; i++)
        {
            str.Append(whereClause[i]).Append(" && ");
        }

        string strWhere = str.ToString().TrimEnd(" && "); //hypothetical code 


        AcmeDB db = new AcmeDB();
        var searchResult = db.SearchSummaries.Where(strWhere, whereValues);

        return searchResult;

现在,如果我想搜索让我们说经验,该怎么做?因为此表包含我需要从每个用户的单行中搜索的所有内容,所以我希望在一行中包含姓名、用户名、地址、资格、经验等。我希望我解释得对吗?

4

0 回答 0