有没有办法强制刷新元模型,SubSonic在DataBase中进行DDL更改后构建

时间:2009-06-03 08:35:53

标签: subsonic metadata

E.g。当我添加一个新表时,它不会出现在Northwind命名空间中,直到我从以下位置删除项目文件夹: C:\ Users \ userName \ AppData \ Local \ Temp \ Temporary ASP.NET Files \

或添加并读取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 个答案:

答案 0 :(得分:3)

这里的问题是除非你在App_Code中更改abp文件,否则BuildProvider不会“关闭”。这是一个黑客,但如果你想让它工作,你需要打开该文件并通过添加空格或某种东西以某种方式更改它 - 然后它将启动构建器。

我正在研究一些T4模板,所以你不必这样做。此外 - 您可以使用我们的命令行工具生成要为您提交的内容: http://subsonicproject.com/subcommander/using-the-command-line-tool-subcommander/

答案 1 :(得分:0)

谢谢,两者都有效!

如你所说,只是改变* .abp文件(添加几个空格)

sonic.exe生成/配置“D:\ path \ to \ my \ web.config”

P.S。 我有一个D:\ temp \ utils文件夹,我保留了所有使用的命令行工具......它是%PATH%环境变量的一部分...... 我花了几分钟才意识到我必须复制整个内容:

D:\ libs \ orm \ SubSonic_2.1_Final_Source \ src \ SubSonic \ bin \ Debug目录到该命令行工具文件夹......

编辑:使用VS外部工具命令更快: 工具 - 外部工具 - 添加 标题:SubSonic 命令:D:\ path \ to \ sonic.exe 参数:generate / config“D:\ path \ to \ my \ web.config” 初始目录:{$ ProjectDir}

工具 - 选项 - 键盘 查找工具Subsonic

让它在命令行的任何地方工作