Стремительная загрузка не работает в EF - PullRequest
0 голосов
/ 18 февраля 2012

Я вытаскиваю свои волосы, я понятия не имею, почему я не могу вернуть объекты AdPhotos и Location.Я использую .ToList (), не должен ли он сохранить целую коллекцию AdPhotos?

Когда я ставлю точку останова на возврат, я вижу данные в AdPhotos и Location, но после этого они исчезают.

public List<AdListing> LatestAdListings()
{
    using (var db = new AdultdirectoryEntities())
    {
        var results = (from a in db.AdListings.Include("AdPhotos").Include("Location")
                       join l in db.Locations on a.LocationID equals l.LocationID
                       where a.Approved && l.CountryID == Constants.ItemKeys.UsCountryId && a.AdPhotos.Count > 0
                       orderby a.CreateDateTime descending
                       select a).Take(5).ToList();

        return results;
    }
}

1 Ответ

1 голос
/ 18 февраля 2012

Ваш Include вызов сопровождается ручным соединением - это не поддерживается. Как только вы используете ручное соединение или проекцию, вы меняете форму запроса, и все Include вызовы теряются.

Кроме того, вам не нужно объединение, потому что вы можете написать запрос как:

var results = (from a in db.AdListings.Include("AdPhotos").Include("Location")
               where a.Approved && a.Location.CountryID == Constants.ItemKeys.UsCountryId && a.AdPhotos.Count > 0
               orderby a.CreateDateTime descending
               select a).Take(5).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...