Фильтровать в LoadProperty или Включить - PullRequest
0 голосов
/ 09 ноября 2011

LoadProperty или Include извлекает все связанные строки из основного объекта.Как я могу отфильтровать строки, полученные из вызова LoadProperty?Я бы не хотел делать постобработку восстановления данных из БД.

В моем случае это что-то вроде

public Expression<Func<TipoReforma, bool>> predicadoFiltroIdioma(String filtro)
    {
    return x => x.DetalleTipoReforma.Any(y=>filtro.Contains(y.Idioma.idioma));
    }


IEnumerable<T> resultado = objectSet.Where<T>(predicadoFiltroIdioma("en");
Contexto.LoadProperty(resultado.ToList()[0], "DetalleTipoReforma");

Я хочу только "TipoReforma", но связанная информация должна быть толькокакая идиома "х".

Заранее спасибо,

1 Ответ

0 голосов
/ 09 ноября 2011

Ни LoadProperty, ни Include не поддерживают фильтрацию = они всегда загружают все связанные объекты.Вы должны использовать другой подход.Вы можете попробовать использовать CreateSourceQuery.Что-то вроде:

var data = ((EntityCollection<TipoReforma>)resultado.ToList[0].DetalleTipReforma)
                .CreateSourceQuery().OrderBy(predicadoFiltroIdioma).ToList();

Это также должно заполнить ваше свойство навигации в главной сущности.Также убедитесь, что отложенная загрузка отключена перед выполнением этого кода.

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