2013-04-28 4 views
2

У меня есть вопрос о постоянной загрузке в инфраструктуре сущности.Яркая загрузка с условием

У меня есть две таблицы ScrappyTemplate и ScarppyTemplateFields, соотношение между таблицами - одно для многих. Обратите внимание, что обе таблицы имеют IsActive флаг

Я хочу получать данные из ScrappyTemplate и ScrappyTemplateFields где IsActive == Правда, им, используя приведенный ниже код для извлечения данных с помощью жадной загрузки

using (Entities entities = new Entities()) 
{ 
var content = entities.ScrappyTemplates.Include(entities.GetTableName<ScrappyTemplateField> (false)).Where(c => c.ContentSourceId == contentSourceId && c.IsActive == true && c.ScrappyTemplateFields.Any(d=>d.IsActive==true)).ToList<ScrappyTemplate>(); 
} 

Im получение resultet, что не так !!, я хочу получить набор результатов из таблицы Child, то есть ScrappyTemplateFields, где IsActive = true, но он возвращает все строки, соответствующие IR-флагу IsActive.

Пожалуйста, помогите мне, как разместить условие в таблице для детей.

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

ответ

1

.INCLUDE() не допускает фильтрацию связанных сущностей. Попробуйте это:

using (Entities entities = new Entities()) 
     { 
     var query = from template in entities.ScrappyTemplates 
         where template.ContentSourceId = contentSourceId && template.IsActive = true && template.ScrappyTemplateFields.Any(d=>d.IsActive==true) 
         select new { 
          Template = template, 
          TemplateFields = template.ScrappyTemplateFields.Where(d=>d.IsActive==true) 
         }; 
     var content = query.ToList().Select(t=>t.Template); 
     } 
+0

Спасибо Khánh, решение это, кажется, работает, но есть в любом случае я могу использовать фактические объекты вместо того, чтобы использовать анонимные типы –

+0

Я боюсь, что нет никакого другого пути. Посмотрим, есть ли у кого-нибудь другой путь. –

+0

Я, наконец, достиг этого, преобразовывая тип Anonymous в Actual. –

Смежные вопросы