Ошибка с Subsonic 2.1 - PullRequest
       37

Ошибка с Subsonic 2.1

0 голосов
/ 05 октября 2009

Я получаю очень странные ошибки при компиляции нашей библиотеки доступа к данным (все дозвуковые). Ошибки

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 проекта - веб-проект, а затем библиотека классов под названием 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 ]

2 голосов
/ 05 октября 2009

Вам также может понадобиться добавить ссылку на пространство имен System.configuration, если вы этого еще не сделали.

2 голосов
/ 06 октября 2009

В итоге проблема заключалась в том, что какой-то гений (на самом деле он довольно умен, у него просто пукнул мозг) добавлял таблицы в БД (я знал, что он это делает). Однако я НЕ знал, что он добавил таблицу с именем «Система». Что ж, это поставило Subsonic в замешательство, потому что он создал класс «System».

НЕ делайте этого в ваших собственных проектах. .Net очень запутан между пространством имен System и классом. И никто не побеждает.

После того как я переименовал таблицу, удалил файлы System.cs и SystemController.cs, отредактировал файл DACL.csproj вручную (по некоторым причинам он не удалил ссылки на эти 2 класса), закрыл решение и перекомпилировал , Наконец, все снова заработало.

Это добавлено в мой собственный список "глупых вещей", которые нужно искать, прежде чем искать экзотические решения.

Спасибо за совет, TheVillageIdiot и Джо. Ваши предложения все еще стоит проверить.

2 голосов
/ 05 октября 2009

Subsonic использует System.Web пространство имен. Поэтому, пожалуйста, добавьте ссылку на System.Web другие пространства имен в свои проекты.

...