0

编译我们的数据访问库(所有亚音速)时,我遇到了非常奇怪的错误。错误是

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>

今晚早些时候我遇到了这些错误,但这是由于默认提供程序参数的类型。

有人知道为什么我会收到这些错误吗?我很绝望,在过去的一个小时里一直在用头撞墙。

4

3 回答 3

2

Subsonic 使用System.Web命名空间。因此,请在您的项目中添加对 System.Web 其他命名空间的引用。

于 2009-10-05T05:04:35.963 回答
2

如果还没有,您可能还需要添加对System.configuration名称空间的引用。

于 2009-10-05T05:10:18.780 回答
2

问题最终变成了这样:某个天才(实际上他很聪明,他只是脑子有屁)正在向数据库添加表(我知道他正在这样做)。但是,我不知道他添加了一个名为“系统”的表。好吧,这让 Subsonic 很困惑,因为它创建了一个名为“System”的类。

不要在你自己的项目中这样做。.Net 在 System 命名空间和类之间变得非常混乱。而且没有人赢。

在我重命名表后,删除 System.cs 和 SystemController.cs 文件,手动编辑 DACL.csproj 文件(由于某种原因,它不会删除对这两个类的引用),关闭解决方案并重新编译,最后一切又开始工作了。

这被添加到我自己的“是否已插入”列表中,在我去寻找奇异的解决方案之前要寻找的愚蠢的东西。

感谢您的建议,TheVillageIdiot 和乔。您的建议仍然非常值得检查。

于 2009-10-06T03:22:43.133 回答