У меня есть следующие строки в моем .vimrc, кажется, установлен по умолчанию с моим Ubuntu 8.10
set smartindent
inoremap # X^H#
set autoindent
И я не вижу проблемы. Может быть, вы можете попробовать это. (Обратите внимание, что ^ H следует вводить Ctrl-V Ctrl-H)
Да, метод встроен в 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 , где такие расширения уже доступны.
Я также получил эту ошибку и исправил ее, добавив следующую ссылку:
using System.Data.Entity;
Ответ Брюса Хилла абсолютно верен.
Просто, чтобы немного расширить его ответ, методы Include являются методами расширения в пространстве имен System.Data.Entity.
Это не влияет на то, как вы их используете, но методы Include фактически определены в статическом классе с именем DbExtensions. На msdn.microsoft.com вы увидите их документально, а не в System.Linq.IQueryable, что затруднит их поиск.
Если эта проблема возникает из-за хранимой процедуры, убедитесь, что SP работает нормально.
Entity Framework попытается предсказать тип возвращаемого значения из хранимой процедуры, и, если SP не работает из-за недопустимого имени таблицы или столбца внутри нее, он возвращает Integer, а Entity Framework создает концептуальную схему, ожидающую целое число. в качестве возвращаемого значения вместо таблицы.