Есть ли способ принудительно обновить метамодель, которую SubSonic создает после изменения DDL в базе данных - PullRequest
0 голосов
/ 03 июня 2009

например. Когда я добавляю новую таблицу, она не появляется в пространстве имен Northwind, пока я не удалю папку проекта из: C: \ Users \ имя_пользователя \ AppData \ Local \ Temp \ Временные файлы ASP.NET \

или добавьте и прочитайте SubSonic.dll

У меня есть следующая конфигурация:

    <configSections>
      <section name="SubSonicService" type="SubSonic.SubSonicSection, SubSonic"></section>

....

  <SubSonicService defaultProvider="Northwind">
    <providers>
      <clear/>
      <add name="Northwind" 
           type="SubSonic.SqlDataProvider, SubSonic" 
           connectionStringName="Northwind" 
           generatedNamespace="Northwind"/>
    </providers>
  </SubSonicService>

  <connectionStrings>
    <add name="Northwind" connectionString="Data Source=.;Database=Northwind;Integrated Security=true;"/>
  </connectionStrings>  

....
        <compilation debug="true">

          <buildProviders>
            <add extension=".abp" type="SubSonic.BuildProvider, SubSonic"/>

          </buildProviders>
...


      <pages>
        <controls>
                    <add assembly="SubSonic" namespace="SubSonic" tagPrefix="subsonic"/>

Ответы [ 2 ]

3 голосов
/ 03 июня 2009

Проблема здесь в том, что BuildProvider не «выключается», если вы не измените файл abp в App_Code. Это хак, но если вы хотите, чтобы он работал, вам нужно открыть этот файл и каким-то образом изменить его, добавив пробел или что-то в этом роде - тогда он сработает.

Я работаю над некоторыми шаблонами T4, поэтому вам не нужно этого делать. Кроме того - вы можете использовать наш инструмент командной строки, чтобы сгенерировать материал для файла для вас: http://subsonicproject.com/subcommander/using-the-command-line-tool-subcommander/

0 голосов
/ 04 июня 2009

Спасибо, оба сработали!

Либо, как вы сказали, просто измените файл * .abp (добавили пару пробелов)

или

sonic.exe generate / config "D: \ path \ to \ my \ web.config"

P.S. У меня есть папка D: \ temp \ utils, где я храню все используемые инструменты командной строки ... и она является частью переменной среды% PATH% ... и мне потребовалось несколько минут, чтобы понять, что я должен был скопировать все:

D: \ libs \ orm \ SubSonic_2.1_Final_Source \ src \ SubSonic \ bin \ Отладочный каталог в эту папку инструментов командной строки ...

Редактировать: еще быстрее с командой VS External Tool: Инструменты - Внешние инструменты - Добавить Название: SubSonic Команда: D: \ path \ to \ sonic.exe Аргументы: сгенерировать / настроить "D: \ path \ to \ my \ web.config" Начальный каталог: {$ ProjectDir}

Инструменты - Параметры - Клавиатура Найти инструменты Subsonic

чтобы он работал из любой точки командной строки

...