Entity Framework Конвертировать DateTime в строку - PullRequest
1 голос
/ 24 января 2012
leaves = leaves.Where(s => s.Employee.Name.ToUpper().Contains(searchString.ToUpper())
                                   || s.StartDate.ToString().Contains(searchString));     

Это приведет к ошибке .. Пожалуйста, помогите мне,

Ошибка: LINQ to Entities не распознает метод метода System.String ToString (), и этот метод не может быть переведенв магазинное выражение ..

Ответы [ 2 ]

3 голосов
/ 24 января 2012

Относитесь к каждому случаю по-разному

DateTime dateValue;

if (DateTime.TryParse(searchString, out dateValue))
{
    leaves = leaves.Where(l => l.StartDate == dateValue);
}
else
{
    leaves = leaves.Where(s => s.Employee.Name.ToUpper().Contains(searchString.ToUpper()));
}
1 голос
/ 24 января 2012

В сообщении об ошибке указано, что именно происходит: Entity Framework не может перевести эту часть выражения в оператор SQL, что означает, что вы не можете искать таким образом.

Без дополнительного контекста, вероятно, лучшим вариантом являетсявыполнять поиск по реальным датам (т. е. выполнять поиск с определенной даты или до нее).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...