相关疑难解决方法(0)

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

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

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

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

83
推荐指数
7
解决办法
10万
查看次数

实体框架EF.Functions.Like vs string.Contains

我正在阅读实体框架核心2.0的公告https://blogs.msdn.microsoft.com/dotnet/2017/08/14/announcing-entity-framework-core-2-0/

它说它们添加了新的Sql函数,就像EF.Functions.Like执行SQL LIKE操作一样.

我想知道,那么EF.Functions.Likestring.Contains/ 之间的区别是StartsWith什么?

例如:

var customers = context.Customers.Where(c => c.Name.StartsWith("a")); // Version A
var customers = context.Customers.Where(c => EF.Functions.Like(c.Name, "a%")); // Version B
Run Code Online (Sandbox Code Playgroud)

两个版本之间有什么区别?EF已经知道如何翻译string.Contains/ StartsWith到相应的SQL操作,不​​是吗?

我能想到的唯一原因是EF.Functions.Like会允许更复杂的模式"a%b%"(尽管这个可以写成StartsWith("a") && Contains("b"))

这是什么原因?

c# entity-framework

39
推荐指数
2
解决办法
3万
查看次数