Загрузка отношения EF при выполнении соединений - PullRequest
0 голосов
/ 21 февраля 2012

У меня настроена структура сущностей, и у меня установлены следующие отношения:

  • AdListing (AdListingID, заголовок, детали)
  • AdListingLocation (AdListing может иметь несколько местоположений: AdListingID, LocationID)
  • Местоположение (LocationID, Страна, Город)

В EF я хотел бы вернуть все AdListings, где Город "Нью-Йорк"

Имейте в виду, я также хотел бы загрузить отношение AdListingLocation (наряду с некоторыми другими). В другом посте я узнал, что мне не разрешено делать ручные соединения, если я использую .Include. Как я могу выполнить оба?

var results = (from a in db.AdListings.Include("AdListingPhotos").Include("AdListingLocations")
               where a.AdListingLocations.Location.City = "New York"
               select a).ToList();

Ответы [ 2 ]

1 голос
/ 21 февраля 2012
var results = from a in db.AdListings
              where a.AdListingLocations.Location.City == "New York"
              select a;

return results
       .Include(a => a.AdListingPhotos)
       .Include(a => a.AdListingLocations)
       .ToList();

Чтобы включить лямбда-синтаксис в поле Включить, просто введите следующую строку:

 using System.Data.Entity;
0 голосов
/ 21 февраля 2012

Вы пытались переместить .Include() звонки после вашего запроса?

var results = (from a in db.AdListings
           where a.AdListingLocations.Location.City = "New York"
           select a).Include("AdListingPhotos").Include("AdListingLocations").ToList();

Теперь у вас должна быть возможность выполнить соединение в вашем запросе.

Я не проверял это, поэтому он может работать не так, как ожидалось.

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