我正在开发一个使用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;
现在,如果我想搜索一下让我们说经验,怎么做?因为这个表包含我需要从每个用户的单行搜索的所有内容,所以我希望在一行中有名称,用户名,地址,资格,经验等。我希望我解释得对吗?