代码之家  ›  专栏  ›  技术社区  ›  Matt Dawdy

亚音速2.1的误差

  •  0
  • Matt Dawdy  · 技术社区  · 15 年前

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

    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
    

    它们在我所有的亚音速生成类上。

    我有两个项目——一个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>
    

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

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

    3 回复  |  直到 15 年前
        1
  •  2
  •   Joe    15 年前

    您可能还需要添加对 System.configuration 如果您还没有的话,请命名空间。

        2
  •  2
  •   TheVillageIdiot    15 年前

    亚音速使用 System.Web 命名空间。因此,请将对System.Web其他命名空间的引用添加到项目中。

        3
  •  2
  •   Matt Dawdy    15 年前

    问题最终是这样的:一些天才(实际上他很聪明,只是放了一个脑筋屁)正在给数据库添加表(我知道他在做这个)。但是,我不知道他添加了一个名为“system”的表。好吧,这让亚音速都困惑了,因为它创造了一个叫做“系统”的类。

    不要在自己的项目中这样做。.NET在系统命名空间和类之间非常混乱。没有人会赢。

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

    在我寻找异域解决方案之前,这是添加到我自己的“是否插入”愚蠢的事情列表中的。

    谢谢你的建议,Villageidiot和Joe。你的建议还是很值得检查的。