与实体框架中的运营商一样?

.net entity-framework linq-to-entities sql-server

我们正在尝试在实体框架中为包含字符串字段的实体实现“LIKE”运算符,但似乎不支持它。有没有其他人试图做这样的事情?

这篇博客文章总结了我们遇到的问题。我们可以使用contains,但这只匹配LIKE的最简单的情况。组合contains,startswith,endswith和indexof将我们带到那里,但需要在标准通配符和Linq to Entities代码之间进行转换。

一般承认的答案

这是一个旧帖子,但对于任何寻找答案的人来说, 这个链接应该有所帮助。

精简版:

SqlFunctions.PatIndex方法 - 在所有有效的文本和字符数据类型上返回指定表达式中第一次出现模式的起始位置,如果未找到模式则返回零

命名空间:System.Data.Objects.SqlClient程序集:System.Data.Entity(在System.Data.Entity.dll中)

论坛帖子中也会出现一些解释。


热门答案

我真的对EF一无所知,但在LINQ to SQL中,你通常使用String.Contains表达一个LIKE子句:

where entity.Name.Contains("xyz")

翻译成

WHERE Name LIKE '%xyz%'

(使用StartsWithEndsWith进行其他行为。)

我不完全确定这是否有用,因为当你说你试图实现 LIKE时,我不明白你的意思。如果我完全误解了,请告诉我,我会删除这个答案:)



Related

许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因