Linq-to-Entities Включить метод не найден

У меня есть следующие строки в моем .vimrc, кажется, установлен по умолчанию с моим Ubuntu 8.10

set smartindent
inoremap # X^H#
set autoindent

И я не вижу проблемы. Может быть, вы можете попробовать это. (Обратите внимание, что ^ H следует вводить Ctrl-V Ctrl-H)

23
задан Ladislav Mrnka 10 March 2011 в 08:40
поделиться

4 ответа

Да, метод встроен в EF, но недоступен на интерфейсе IQueryable. Это доступно на ObjectQuery. Если вы хотите вызвать его на IQueryable, вы должны создать собственное расширение, которое преобразует текущий запрос в ObjectQuery и выполнит Include. Что-то вроде:

public static IQueryable<T> Include<T>(this IQueryable<T> query, string property)
{
  var objectQuery = query as ObjectQuery<T>;
  if (objectQuery == null)
  {
    throw new NotSupportedException("Include can be called only on ObjectQuery");
  }

  return objectQuery.Include(property);
}

Или вы должны использовать Entity Framework Feature CTP5 , где такие расширения уже доступны.

15
ответ дан Ladislav Mrnka 10 March 2011 в 08:40
поделиться

Я также получил эту ошибку и исправил ее, добавив следующую ссылку:

using System.Data.Entity;
83
ответ дан BruceHill 10 March 2011 в 08:40
поделиться

Ответ Брюса Хилла абсолютно верен.

Просто, чтобы немного расширить его ответ, методы Include являются методами расширения в пространстве имен System.Data.Entity.

Это не влияет на то, как вы их используете, но методы Include фактически определены в статическом классе с именем DbExtensions. На msdn.microsoft.com вы увидите их документально, а не в System.Linq.IQueryable, что затруднит их поиск.

10
ответ дан Dan K 10 March 2011 в 08:40
поделиться

Если эта проблема возникает из-за хранимой процедуры, убедитесь, что SP работает нормально.

Entity Framework попытается предсказать тип возвращаемого значения из хранимой процедуры, и, если SP не работает из-за недопустимого имени таблицы или столбца внутри нее, он возвращает Integer, а Entity Framework создает концептуальную схему, ожидающую целое число. в качестве возвращаемого значения вместо таблицы.

0
ответ дан Mahesh 10 March 2011 в 08:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: