Подтвердить что ты не робот

Присоединиться и включить в инфраструктуру Entity Framework

У меня есть следующий запрос linq к объектам. Проблема в том, что он, похоже, не загружает отношение "Теги", хотя я включил в него вещь. Он отлично работает, если я не присоединяюсь к тегам, но мне нужно это сделать.

            var items = from i in db.Items.Include("Tags")
                        from t in i.Tags
                        where t.Text == text
                        orderby i.CreatedDate descending
                        select i;

Есть ли другой способ задать этот запрос? Может быть, расстаться или что-то еще?

4b9b3361

Ответ 1

Ну, Include противоречит тому, где. Include говорит: "Загрузите все теги". Там где сказано: "Загрузите теги". Когда есть противоречие между запросом и Include, запрос всегда будет выигрывать.

Чтобы вернуть теги all из любого элемента с не менее одним тегом == text:

        var items = from i in db.Items.Include("Tags")
                    where i.Tags.Any(t => t.Text == text)
                    orderby i.CreatedDate descending
                    select i;

(Untested, поскольку у меня нет вашей базы данных/модели)

Здесь действительно хорошая, бесплатная книга по LINQ.