2009-10-05 74 views
0

編譯我們的數據訪問庫(全亞音速)時出現非常奇怪的錯誤。錯誤是亞音速2.1的錯誤

Error 35 The type name 'Web' does not exist in the type 'S3.DACL.System'  
     C:\Projects\S3\src\DACL\AspnetUser.cs 369 63 DACL 

而且

Error 37 The type name 'ComponentModel' does not exist in the type 
'S3.DACL.System' 
C:\Projects\S3\src\DACL\AspnetPersonalizationPerUserController.cs 19 13 DACL 

,他們是我所有的亞音速生成的類。

我有2個項目 - 一個Web項目,然後是一個名爲DACL的類庫。我的web.config亞音速的東西是這樣的:

<connectionStrings> 
    <add name="S3" connectionString="data source=ServerName;initial catalog=Cat1; 
     user id=usenrame;password=password;" /> 
</connectionStrings> 
<SubSonicService defaultProvider="S3"> 
    <providers> 
    <add name="S3" type="SubSonic.SqlDataProvider, SubSonic" 
     connectionStringName="S3" generatedNamespace="S3.DACL"/> 
    </providers> 
</SubSonicService> 

我今天晚上有這些錯誤,但這是由於默認的提供程序參數的類型。

任何人有任何想法,爲什麼我得到這些錯誤?我很沮喪,在最後一個小時裏,我的頭撞牆。

回答

2

這個問題最終成爲這個:一些天才(實際上他很聰明,他只是有一個大腦屁)是向DB添加表格(我知道他正在這樣做)。但是,我不知道他添加了一個名爲「System」的表。那麼,Subsonic就會讓所有人感到困惑,因爲它創建了一個名爲「System」的類。

不要在您自己的項目中這樣做。 .Net在系統命名空間和類之間變得非常混亂。沒有人贏。

重命名錶後,刪除System.cs和SystemController.cs文件,手工編輯DACL.csproj文件(出於某種原因,它不會刪除對這兩個類的引用),關閉解決方案並重新編譯,最後它全部重新開始工作。

這是添加到我自己的「是否插入」的愚蠢的東西名單之前,我去尋找異國情調的解決方案。

感謝您的建議,TheVillageIdiot和喬。您的建議仍然非常值得檢查。

+0

謝謝,就是這樣! – 2009-10-13 02:19:27

3

亞音速使用System.Web命名空間。所以請將對System.Web其他名稱空間的引用添加到您的項目中。

+0

我明白了。 System.Web,System.configuration,System.Data,System.Data.DataSetExtesions,System.XML,System.Xml.Linq,System.Core ...我仍然不知道爲什麼會發生這種情況。 – 2009-10-06 02:17:54

+0

你是否也將它們添加到DAL項目中? – TheVillageIdiot 2009-10-06 04:16:53

3

如果還沒有,您可能還需要添加對System.configuration名稱空間的引用。

+0

我也有那個。 System.Web,System.configuration,System.Data,System.Data.DataSetExtesions,System.XML,System.Xml.Linq,System.Core ...我仍然不知道爲什麼會發生這種情況。 – 2009-10-06 02:18:25