gpt4 book ai didi

c# - 使用 .Contains() 搜索查询组合两列的参数

转载 作者:太空狗 更新时间:2023-10-29 22:30:21 24 4
gpt4 key购买 nike

我有一个包含 FirstName 和 LastName 的表以及一个看起来有点像这样的查询:

var TheQuery = (from c in MyDC.Contacts
where (c.FirstName.Contains(TheSearchParameter) ||
c.LastName.Contains(TheSearchParameter))
select c.ColumnID).Distinct().ToList();

如果用户搜索 John 或 Smith,将返回记录,但如果用户搜索 John Smith,则不会返回任何记录。 Contains() 是如何工作的?我需要在查询中更改什么才能使其按预期工作?

最佳答案

与其开始玩 andorStartsWithEndsWith 等的组合,不如让我们分析一下主要问题:

Search query using .Contains() for parameters that combine two columns

所以一般的答案是:

where Combine(table.Column1, table.Column2).Contains(TheSearchParameter)

问题是什么是 Combine 函数,对此没有通用的答案。

在您的特定情况下,您似乎想要搜索 Name,它是 FirstNameLastName 列的组合。

即使是这种组合也没有普遍定义(不同的语言有不同的命名规则),但假设您已经想到了最常见的名称组合器:

Name = "{FirstName} {LastName}"

那么查询就是

var TheQuery = (from c in MyDC.Contacts
where (c.FirstName + " " + c.LastName).Contains(TheSearchParameter)
select c.ColumnID).Distinct().ToList();

例如,如果有一个联系人名字:“约翰”姓氏:"Smith",以上查询将匹配 "John""Smith""John Smith" 但不匹配 < em>“史密斯·约翰”。

关于c# - 使用 .Contains() 搜索查询组合两列的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35712550/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com