1

私は mysql で EF を使用する Web アプリケーションに取り組んでいます。検索が複雑になってきているので、検索フィルターに必要なすべてのデータを配置する searchTable を作成することを考えました。1 対 1 のテーブルではうまく機能しますが、1 対多の場合はどうすればよいでしょうか。たとえば、経験や資格などです。問題は、その部分を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;

今、私が経験を言ってみましょうを検索したい場合、それを行う方法は? このテーブルには、検索に必要なすべてがユーザーごとに 1 行で含まれているため、名前、ユーザー名、住所、資格、経験などを 1 行に表示したいと考えています。私はそれを正しく説明していると思いますか?

4

0 に答える 0