Кто-нибудь может объяснить, почему не работает следующее:
модель определяется так (очень простая версия)
public class Monument
{
[Key]
public int? MonumentId { get; set; }
public string Name { get; set; }
}
Метод Find в моей реализации репозитория определяется следующим образом:
public virtual IQueryable<T> Find(Expression<Func<T, bool>> where)
{
return _dbset.Where(where);
}
Параметр where получает значение следующим образом:
whereClause = c => ( (FilteringRecord.MonumentId <= 0 ?
true : c.MonumentId == FilteringRecord.MonumentId)
&& (String.IsNullOrEmpty(FilteringRecord.Name) ?
true :c.Name.Contains(FilteringRecord.Name)) );
Так что, если значение FilteringRecord.MonumentId равно числу, я получаю нужную запись, но если FilteringRecord.Name имеет значение, оно полностью игнорируется !! Почему ???
То же самое отлично работает на первой версии Entity Framework или LINQ to SQL !!
Спасибо заранее !!