The type or namespace name ‘Linq’ does not exist in the namespace ‘System’

I have a wcf service hosted in a website in IIS and I seem to have this issue.
In my web.config I have this:

<system.web>
        <compilation>
            <assemblies>
                <add assembly="System.Core, 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="System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
                <add assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                <add assembly="System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                <add assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/></assemblies>
        </compilation>
    </system.web>

All projects in the solution target framework 4.0.

LE: I get the error when I try to import System.Linq;

 using System.Linq;

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

Solution: It seems that the web config should be:

<system.web>
    <compilation debug="true" targetFramework="4.0"/>
</system.web>

Method 2

Do you have a code file in your site with either Imports System.Linq (VB) or using System.Linq; (c#)?

Seems like the simplest answer is that it is a typo. Maybe the namespace should be corrected to System.Data.Linq.

Edit:
System.Linq should be a valid namespace, as it “provides classes and interfaces that support queries that use Language-Integrated Query (LINQ).” (http://msdn.microsoft.com/en-us/library/system.linq.aspx). It is also imported by default in the system-level web.config.

So, not sure what is happening here if it is not related to my suggestion above. Maybe something wrong in your machine.config or system-level web.config?

Edit 2:
I find it strange that you adding the System.Core assembly at this level. I believe this is the assembly that includes the System.Linq namespace. Maybe removing it would help?

Edit 3:
System.Linq is imported by default in the machine-level web.config. You can remove the line in your code file.

Method 3

Sometimes it “disappears” just for the fun of it. If you don’t need it just delete it.

Else right click your website in the solution explorer and add a reference to it.

Method 4

I had no Linq methods on my Controller (Count, Where, toList, etc…). Adding the namespace:

using System.Linq;

fixed the problem for me. Maybe will help someone in the future…

Method 5

I solved this problem by adding the System.Linq namespace to the namespaces in the ViewsSharedWeb.config file, e.g, as below, 2nd from the bottom, above the WebApplication1 namespace.

Note, this is in the Web.config in the Views folder and is not the web site’s main ‘Web.config`.

<system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
        <namespaces>
            <add namespace="System.Web.Mvc" />
            <add namespace="System.Web.Mvc.Ajax" />
            <add namespace="System.Web.Mvc.Html" />
            <add namespace="System.Web.Optimization"/>
            <add namespace="System.Web.Routing" />
            <add namespace="System.Linq" />
            <add namespace="WebApplication1" />
        </namespaces>
    </pages>
</system.web.webPages.razor>

Method 6

I had the same error but my web app was running on framework v2.0. Changed my application pool from v2.0 to v4.0. all working…happy days

Method 7

the problem is you didn’t add

debug="true|false" targetFramework="4.0"

in compilation tag.

Method 8

Another thing to check is is your .csproj file, specifically these items:

<TargetFrameworkProfile>Profile47</TargetFrameworkProfile>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

If you don’t have a folder for the Profile indicated, you might need to manually change it to one you do have. You might also be able to download the target from https://www.microsoft.com/net/download/visual-studio-sdks.

Unfortunately, my colleague had this happen with an old-style PCL project (profile-based PCL), so he wasn’t able to go download the .NET Portable target, but I had to give him the DLLs out of my functioning folder (C:Program Files (x86)Reference AssembliesMicrosoftFramework.NETPortablev4.0ProfileProfile47).

Method 9

The solution for me was to:

  1. Go to: Tools > Nuget Package Manager > Manage NuGet Packages for Solution
  2. Install the System.Linq package.

Method 10

Deleting the hidden .vs folder and restarting Visual Studio fixed it for me.


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x