Сделать перенаправление без рендеринга страницы перенаправления

Причина. По дизайну LINQ to Entities требуется, чтобы все выражение запроса LINQ было переведено на запрос сервера. Только несколько некоррелированных подвыражений (выражения в запросе, которые не зависят от результатов от сервера) оцениваются на клиенте до того, как запрос будет переведен. Произвольные вызовы метода, которые не имеют известного перевода, такие как GetHomeFeatures () в этом случае, не поддерживаются. Чтобы быть более конкретным, LINQ to Entities поддерживает только конструкторы Parameterless и Initializers . Решение. Поэтому, чтобы преодолеть это исключение, вам нужно объединить свой дополнительный запрос в основной для g7 GetCommunityFeatures () и GetHomeFeatures () вместо прямого вызова методов изнутри LINQ запрос. Кроме того, существует проблема в том, что вы пытались создать экземпляр LazyList , используя его конструкторы с параметрами, как вы могли бы сделать в LINQ to SQL , Для этого решением было бы перейти на оценку клиентов запросов LINQ (LINQ to Objects). Это потребует, чтобы вы вызывали метод AsEnumerable для ваших запросов LINQ to Entities до вызова конструктора LazyList. Что-то вроде этого должно работать:

public IQueryable GetEstates()
{
    return from e in entity.Estates.AsEnumerable()
       let AllCommFeat = from f in entity.CommunityFeatures
                         select new CommunityFeatures {
                             Name = f.CommunityFeature1,
                             CommunityFeatureId = f.CommunityFeatureId
                         },
       let AllHomeFeat = from f in entity.HomeFeatures
                         select new HomeFeatures() {
                             Name = f.HomeFeature1,
                             HomeFeatureId = f.HomeFeatureId
                         },
       select new Models.Estate {
            EstateId = e.EstateId,
            AllHomeFeatures = new LazyList(AllHomeFeat),
            AllCommunityFeatures = new LazyList(AllCommFeat)
       };
}

Дополнительная информация: посмотрите LINQ to Entities, что не поддерживается? для получения дополнительной информации , Также проверьте LINQ на Entities, Обходные решения на том, что не поддерживается , для подробного обсуждения возможных решений. (Обе ссылки - это кешированные версии, поскольку исходный веб-сайт не работает)

0
задан tutuca 30 July 2012 в 18:52
поделиться