2010-10-25 81 views
11

我剛剛作出了一個LINQ到SQL的.dbml在Visual Studio 2010的文件類型或命名空間名稱「的Linq」不存在命名空間「System.Data」存在等

,我發現了出現2次錯誤,共計60次,大部分是第一次。

  1. 類型或命名空間名稱「Linq的」 沒有命名空間中存在「System.Data」
  2. 類型或命名空間 名「EntitySet的」找不到

我在這裏和其他網站上發現了各種類似的問題,所有這些似乎都說需要添加一些額外的程序集。

我已經添加了每一個建議,問題依然存在。另一個奇怪的地方是,VS2010本身並沒有在編輯器屏幕上強調錯誤,但它確實在錯誤日誌中顯示它們。

無論如何,我已經看到所有現有的主題並應用他們的解決方案,問題依然存在。

一些技術細節:

  • 我運行Windows 7 32位。
  • 我仍然安裝了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"/> 
+3

是目標框架3.5? (如果這些是C#項目,你會在屬性/應用程序中看到它。) – steinar 2010-10-25 23:18:02

+0

將其作爲回覆,我會給你解決方案。這確實是......上帝保佑。我只是不明白爲什麼。 .NET 4是否包含默認情況下爲3.5的東西? – KdgDev 2010-10-25 23:29:44

+0

我剛剛「提供」採取代表steinar的「答案」,但我不明白解決方案... :)所以,你在VS2010中創建了一個新項目,添加了一個新的dbml,並看到錯誤?如果是這樣,那*就是怪異的。我只是用3.5和4.0測試過,並且所有需要的引用都是自動添加的。嗯... – shaunmartin 2010-10-26 02:55:05

回答

14

我找到了this link爲我解決了它。淨是以下必須添加到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> 

請注意,配置/的System.Web /編譯標籤已經存在,而且組件/組裝添加標籤需要添加。即使System.Data.Linq在構建時很容易找到。

失敗發生在App_Code.LinqToObservations.designer中。cs,Linq從我的LinqToObservations.dbml文件生成的代碼。

(另外的背景:我很可能陷入這種情況,因爲我使用的程序事後支持LINQ發現here

+0

thnx很多它解決了這個問題。但是我需要確認版本4.0.0.0是Linq程序集還是與網絡有關? – Rusty 2015-02-28 05:42:51

+0

@Rusty - 我沒有檢查的環境,但我相信有一種方法可以檢查已安裝的System.Data.Linq版本。 – 2015-03-01 19:58:24

+0

這也適用於我。我不明白爲什麼是這樣。我添加了一個引用,它編譯得很好,但在瀏覽器中查看時,就像我沒有添加引用, – 2015-03-29 04:03:56

7

我一直就恰好除了我的Windows 7相同的配置同樣的問題是64位的。通過做[project name] -> References -> Add reference -> System.Data.Linq解決它爲什麼你手動添加引用?

+1

參考已經存在,我仍然有這個問題。 – 2014-04-04 20:33:14

+0

這有助於使用SqlMethods.DateDiffDay,謝謝。 – stom 2015-03-08 14:40:08

+0

@HotLicks我也遇到同樣的問題,在web.config中添加並確認了引用。有什麼想法嗎? – Jawad 2016-06-08 08:09:59

2

您可以嘗試以下操作:

添加參考將System.Data.Linq(右鍵單擊引用文件夾|選擇Add Reference |選擇.NET選項卡(默認是選中)|選擇System.Data。 LINQ參考|。單擊OK

我希望這會幫助你或別人

7

重要的是,你必須在webconfig設置

<system.web> 
    <compilation debug="true" targetFramework="4.0"/> 
</system.web> 
相關問題