私は 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 行に表示したいと考えています。私はそれを正しく説明していると思いますか?