Тип или имя пространства имен Linq не существует в пространстве имен "System.Data" и т.д.
Я только что сделал файл Linq-to-SQL.dbml в Visual Studio 2010.
Я получаю следующие 2 ошибки, всего 60 раз, в основном первый.
- Тип или имя пространства имен 'Linq'
не существует в пространстве имен "System.Data"
- Тип или пространство имен
имя "EntitySet" не найдено.
Я нашел несколько похожих вопросов здесь и на других сайтах, все из которых, похоже, говорят, что нужно добавить дополнительную сборку.
Я добавил, что каждая предлагаемая проблема сохраняется. Еще одна особенность заключается в том, что сам VS2010 не подчеркивает ошибки на экране редактора, но показывает их в журнале ошибок.
В любом случае, я видел все существующие темы и применял их решения, проблема сохраняется.
Некоторые технические детали:
- Я запускаю 32-разрядную версию Windows 7.
- У меня все еще есть Visual Studio 2008 SP1
установлен. Я только что установил VS2010
когда он вышел и не удалил
более старый.
- Я запускаю сервер MSSQL 2008 R2.
И здесь сборки, перечисленные в моем файле web.config:
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Entity.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Services.Client, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Services.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.SqlXml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
Ответы
Ответ 1
Я нашел эту ссылку, которая решила его для меня. Сеть состоит в том, что в web.config необходимо добавить следующее:
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</assemblies>
</compilation>
</system.web>
</configuration>
Обратите внимание, что теги configuration/system.web/compilation уже есть, и необходимо добавить сборки/добавить теги сборки. Это несмотря на то, что System.Data.Linq легко обнаруживается VS при создании.
Ошибка произошла в App_Code.LinqToObservations.designer.cs, код, сгенерированный Linq из моего файла LinqToObservations.dbml.
(Дополнительный фон: я, вероятно, попал в эту ситуацию, потому что я включил Linq после факта, используя найденную процедуру здесь.)
Ответ 2
У меня была такая же проблема с точно такой же конфигурацией, за исключением того, что у меня Windows 7 64-разрядная. Получилось это решить, выполнив [project name] -> References -> Add reference -> System.Data.Linq
Почему вы добавляете ссылки вручную?
Ответ 3
Важно, вы должны установить в webconfig
<system.web>
<compilation debug="true" targetFramework="4.0"/>
</system.web>
Ответ 4
Вы можете попробовать следующее:
Добавьте ссылку на System.Data.Linq (щелкните правой кнопкой мыши по папке "Ссылки" | выберите "Добавить ссылку". Выберите вкладку .Net(выбран по умолчанию) | выберите System.Data.Linq ссылка | нажмите "ОК".
Я надеюсь, что это поможет вам или кому-то еще.