Я читал анонс сущности framework core 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.Like
и string.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
В чем разница между двумя версиями?
EF уже знает, как перевести string.Contains
/StartsWith
на соответствующие операции SQL, не так ли?
Единственная причина, по которой я могу думать, это то, что EF.Functions.Like позволит более сложные шаблоны, такие как "a%b%"
(хотя это можно записать как StartsWith("a") && Contains("b")
)
Это причина?