gpt4 book ai didi

asp.net-mvc - LINQ to Entity,使用 SQL LIKE 运算符

转载 作者:行者123 更新时间:2023-12-04 00:45:44 24 4
gpt4 key购买 nike

我有一个从表中提取的 LINQ to ENTITY 查询,但我需要能够创建“模糊”类型的搜索。因此,我需要添加一个 where 子句,如果他们在搜索框中添加条件(文本框,可以为空 --- 在这种情况下,它会拉取一切),则该子句按姓氏进行搜索。

这是我到目前为止所拥有的:

    var query = from mem in context.Member
orderby mem.LastName, mem.FirstName
select new
{
FirstName = mem.FirstName,
LastName = mem.LastName,

};

这将从实体对象中的成员表中提取所有内容。

然后我对逻辑进行了补充:
sLastName = formCollection["FuzzyLastName"].ToString();

if (!String.IsNullOrEmpty(sLastName))
query = query.Where(ln => ln.LastName.Contains(sLastName));

问题是按下搜索按钮时,没有返回任何内容(0 个结果)。我已经针对我希望在这里发生的 SQL Server 运行查询,它返回 6 个结果。

这是我期望的查询:
SELECT mem.LastName, mem.FirstName FROM Members mem WHERE mem.LastName LIKE '%xxx%'

(当 xxx 输入文本框时)

有人看到这有什么问题吗?

编辑:修复了 SELECT 查询。我的意思是让它读 LIKE '%xxx%' (NOT = 'xxx")

最佳答案

我想你想使用 Contains()字符串参数的功能如下:

var query = from mem in context.Member
where mem.LastName.Contains("xxx")
orderby mem.LastName, mem.FirstName
select new
{
FirstName = mem.FirstName,
LastName = mem.LastName,
};

我想你也可以用 StartsWith()EndsWith()这将分别相当于 SQL 'xxx%' 和 '%xxx"。

关于asp.net-mvc - LINQ to Entity,使用 SQL LIKE 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2493703/

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