如何在 Entity Framework 中使用包含 (T-SQL)
How to use contains (T-SQL) in Entity Framework
我正在寻找与 T-SQL 的此功能等效的内容:
SELECT *
FROM dbo.users
WHERE CONTAINS (name, 'Jack')
在 Entity Framework.
谢谢。
P.S。 linq 中的 "contains" 等同于 TSQL 中的 LIKE(例如,'%jack%')。我不是在寻找这个,因为这种搜索,尤其是在大型数据库上,可能会影响性能。
我认为只是 users.Where(x => x.name.Contains("jack"));
其实在SQL中应该是
SELECT *
FROM dbo.users
WHERE name like '%Jack%'
而在 EF 中,它等于
var result = dbContext.users.Where(p => p.name.Contains("Jack"))
CONTAINS
关键字是 SQL 服务器中全文搜索功能的一部分 - 到目前为止,EF 本身并不支持全文搜索。
有一些方法使用 EF "interceptors" 或简单明了的 T-SQL 存储过程将此功能包含到 EF 中 - 但它不是 Microsoft 提供的 EF 包的一部分。
查看这些其他 SO 问题:
- Entity Framework, Code First and Full Text Search
- How to execute a full text search using entity framework 6)
我正在寻找与 T-SQL 的此功能等效的内容:
SELECT *
FROM dbo.users
WHERE CONTAINS (name, 'Jack')
在 Entity Framework.
谢谢。
P.S。 linq 中的 "contains" 等同于 TSQL 中的 LIKE(例如,'%jack%')。我不是在寻找这个,因为这种搜索,尤其是在大型数据库上,可能会影响性能。
我认为只是 users.Where(x => x.name.Contains("jack"));
其实在SQL中应该是
SELECT *
FROM dbo.users
WHERE name like '%Jack%'
而在 EF 中,它等于
var result = dbContext.users.Where(p => p.name.Contains("Jack"))
CONTAINS
关键字是 SQL 服务器中全文搜索功能的一部分 - 到目前为止,EF 本身并不支持全文搜索。
有一些方法使用 EF "interceptors" 或简单明了的 T-SQL 存储过程将此功能包含到 EF 中 - 但它不是 Microsoft 提供的 EF 包的一部分。
查看这些其他 SO 问题:
- Entity Framework, Code First and Full Text Search
- How to execute a full text search using entity framework 6)