Отсутствует GetTable() в контексте базы данных

#c# #linq #entity-framework

#c# #linq #entity-framework

Вопрос:

У меня есть System.Data.Linq в ссылках, а также включено как пространство имен, но в моем контексте базы данных нет GetTable метода. Этого просто нет, что бы я ни делал.

Это проект MVC5 на .NET 4.5.1 с Entity Framework 6.

У кого-нибудь есть идеи, почему это может происходить?

Ответ №1:

Я думаю, вы ищете Set<TEntity>()

Комментарии:

1. Действительно, это так. Похоже, EF6 реализует Set вместо GetTable, который, я полагаю, предназначен для LINQ to SQL?

2. Да, действительно, GetTable берется из DataContext, когда EF полагается на ObjectContext

Ответ №2:

Для других, кто, возможно, ищет, как вернуть отсутствующий метод GetTable<TEntity>() для Linq в SQL:

Сначала вы должны добавить ссылку на System.Data.Linq.dll ваш проект.

Функция GetTable<TEntity>() является расширением Linq, поэтому вы должны фактически импортировать расширения Linq, добавив:

 using System.Linq;
  

в ваш файл кода.

Комментарии:

1. Я просто добавил это для дополнительной информации, потому что это был лучший результат поиска Google «datacontext.gettable отсутствует»