Я не уверен, что это возможно напрямую с помощью linq, потому что вы можете вызывать только основные строковые функции, такие как Contains
, StartsWith
или EndsWith
Это возможно с Entity SQL , поэтому вы можете комбинировать эти подходы.
var query = new ObjectQuery<Profile>(
@"SELECT VALUE p
FROM CsdlContainerName.Profiles AS p
WHERE p.Email LIKE '" + wildcardSearch + "'",
context);
var result = query.AsQueryable().OrderByDescending(p => p.Name).ToList();
ESQL-инъекция наносит ответный удар:)
Вторая версия без уязвимости внедрения (я не пробовал, но она должна работать):
var commandText =
@"SELECT VALUE p
FROM CsdlContainerName.Profiles AS p
WHERE p.Email LIKE @search";
var query = new ObjectQuery<Profile>(commandText, context);
query.Parameters.Add(new ObjectParameter("search", wildcardSearch));
var result = query.AsQueryable().OrderByDescending(p => p.Name).ToList();