2010-10-25 15 views
11

Ben sadece bir Linq SQL'ın Visual Studio .dbml dosyanın 2010.tür veya ad alanı adı 'Linq'

alıyorum yapılan vb ad 'System.Data' içinde yok 2 hatadan sonra, toplamda en çok ilk olmak üzere toplamda 60 defa.

  1. tür veya ad alanı adı 'Linq' ad alanında yok 'System.Data' tür veya ad alanı adı 'EntitySet' bulunamadı
  2. Ben

ve buralarda ve benzer yerlerde çeşitli benzer sorular bulmuşlar. Bunların hepsi ekstra montajın eklenmesi gerektiğini söylüyor.

Önerilen herşeyi ekledim, sorun devam ediyor. Diğer garip bir şey de VS2010'un kendisinin editör ekranında hataların altını çizmemesidir, ancak hata günlüğünde bunları göstermesidir.

Her halükarda, mevcut tüm konuları gördüm ve çözümlerini uyguladık, sorun devam ediyor.

Bazı teknik detaylar:

  • Windows 7 32-bit çalıştırıyorum.
  • Hala Visual Studio 2008 SP1 yüklü. Geldiğinde VS2010 'u yükledim ve daha eski olan 'u kaldırmamıştım.
  • MSSQL sunucusu 2008 R2 çalıştırıyorum.

Ve burada benim web.config dosyasında listelenen meclisleri var:

benim Windows 7 dışında tamamen aynı yapılandırmasına aynı sorunu yaşıyor oldum
<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

hedef çerçevesi 3.5 mi? (C# projeleri ise, özellikler/uygulamada göreceksiniz.) – steinar

+0

Bunu bir yanıt için yapın ve size çözümü vereceğim. Bu gerçekten de ... Allah kahretsin. Ben sadece nedenini anlamıyorum. .NET 4, varsayılan olarak 3.5 olan öğeleri içermiyor mu? – KdgDev

+0

Ben sadece steinar "cevap" için temsilcisi almak "teklif", ama ben çözüm anlamıyorum ... :) Yani, VS2010 yeni bir proje oluşturdu, yeni bir dbml ekledi ve hata gördüm ? Eğer öyleyse, bu * tuhaftır. Bunu 3.5 ve 4.0 ile test ettim ve gerekli tüm referanslar otomatik olarak eklendi. Ah iyi ... – shaunmartin

cevap

14

this link'u buldum ve benim için çözdü. Net şu web.config eklenmelidir ki: Yapılandırma/system.web/derleme etiketleri zaten var ve montajları/montaj etiketleri eklenmesi gerekir eklemek

<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> 

Not söyledi. Bu, System.Data.Linq, bina tarafından VS tarafından kolayca bulunsa bile.

Başarısızlık App_Code.LinqToObservations.designer'deydi.cs, Linq tarafından LinqToObservations.dbml dosyasından oluşturulan kod.

(Ek arkaplan:. Ben prosedürü kullanarak aslında sonra Linq etkin çünkü here buldum olasılıkla bu duruma var)

+0

thnx ile VS 2015 kullanarak çok sorun çözüldü. Ancak, 4.0.0.0 sürümünün Linq derlemesinden mi, yoksa net yapmam gereken bir şey olduğunu doğrulamam gerekiyor mu? – Rusty

+0

@Rusty - Kontrol edilecek bir ortamım yok, ancak System.Data.Linq'in yüklü sürümünü kontrol etmenin bir yolu olduğuna inanıyorum. –

+0

Bu benim için de çalıştı. Neden böyle olduğunu anlamıyorum. Bir referans ekledim ve iyi derler ama tarayıcıda görüntülendiğimde bir referans eklemedim gibidir, –

7

64-bit. [project name] -> References -> Add reference -> System.Data.Linq yaparak çözdünüz mü Neden Referansları elle ekliyorsunuz?

+1

Referans zaten orada ve hala bu sorun var. –

+0

, SqlMethods.DateDiffDay'i kullanmanıza yardımcı oldu, teşekkürler. – stom

+0

@HotLicks Aynı sorunu yaşıyorum, referans eklendi ve web.config dosyasında doğrulandı. herhangi bir fikir lütfen? – Jawad

2

Aşağıdaki deneyebilirsiniz:

System.Data.Linq referansı ekleyin (Sağ Kaynaklar klasörüne tıklayın | seçin Add Reference | System.Data seçmek | Seç Net sekmesini (varsayılan seçilmiş mi). linq referans |.. Tamam 'ı

Bu sizi ya başkası yardımcı olacağını umuyoruz Önemli

7

, sen WebConfig içinde ayarlamalısınız

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