假设我们的表单上有一个带有可选复选框的描述字段。复选框表示进行查找时要搜索的字段。现在我有一个查找矩阵,它调用了他们独特版本的 where 子句。它有效,但我认为它闻起来有点。
这是摘录
// Look for part numbers decide how many fields to search and use that one.
// 0 0 X
if (!PartOpt[0] && !PartOpt[1] && PartOpt[2])
{
query = query.Where(p => (p.PartNumAlt2.Contains(partSearchRec.inventory.PartNum)));
}
// 0 X 0
if (!PartOpt[0] && PartOpt[1] && !PartOpt[2])
{
query = query.Where(p => (p.PartNumAlt.Contains(partSearchRec.inventory.PartNum)));
}
// 0 X X
if (!PartOpt[0] && PartOpt[1] && PartOpt[2])
{
query = query.Where(p => (p.PartNumAlt.Contains(partSearchRec.inventory.PartNum)
|| p.PartNumAlt2.Contains(partSearchRec.inventory.PartNum)));
}
// X 0 0
if (PartOpt[0] && !PartOpt[1] && !PartOpt[2])
{
query = query.Where(p => (p.PartNum.Contains(partSearchRec.inventory.PartNum)));
}
. . .
这种情况持续了一段时间,似乎很容易出现编码错误。在每种情况下,我们都在任何选定的字段中寻找相同的信息。如果我在 SQL 中执行此操作,我可以根据需要简单地构建 WHERE 子句。