项目元素中的procedureFormat没有任何影响

问题描述:

我希望从模型生成的所有存储过程的名称前面加上“cf_”。我添加了procedureFormat =“cf_ {0}”到项目元素。但是,它没有工作。还有什么我失踪?项目元素中的procedureFormat没有任何影响

下面是该项目的元素:

<cf:project defaultNamespace="DemoNaming" xmlns:cf="http://www.softfluent.com/codefluent/2005/1" xmlns:cfx="http://www.softfluent.com/codefluent/modeler/2008/1" xmlns:cfps="http://www.softfluent.com/codefluent/producers.sqlserver/2005/1" xmlns:cfom="http://www.softfluent.com/codefluent/producers.model/2005/1" xmlns:cfasp="http://www.softfluent.com/codefluent/producers.aspnet/2011/1" defaultConnectionString="Database=DemoNaming;Server=.\DEV_SQL_1;Integrated Security=true" createDefaultMethodForms="true" createDefaultApplication="false" createDefaultHints="false" procedureFormat="cf_{0}"> 

你忘了定义命名约定使用,所以CodeFluent实体使用BaseNamingConvention。 从the documentation,必须将namingConventionTypeName属性设置为CodeFluent.Model.Naming.FormatNamingConvention, CodeFluent.Model

FormatNamingConventionBaseNamingConvention类派生,并添加格式的能力和作为基类的所有其他外的现成命名约定。

<cf:project 
    namingConventionTypeName="CodeFluent.Model.Naming.FormatNamingConvention, CodeFluent.Model" 
    procedureFormat="cf_{0}"> 
    (...) 
</cf:project> 

奖金代码 - 更改命名约定不删除旧的存储过程,这可能是一件好事。以下查询将为每个旧存储过程创建一个drop语句。要使用,请在SQL Management Studio中运行它,单击结果选项卡中的列并复制到剪贴板。然后粘贴一个新的查询窗口。

SELECT 'DROP PROCEDURE [' + r1.ROUTINE_SCHEMA + '].[' + r1.ROUTINE_NAME + ']' 
FROM INFORMATION_SCHEMA.ROUTINES r1 
INNER JOIN INFORMATION_SCHEMA.ROUTINES r2 ON r2.ROUTINE_SCHEMA = r1.ROUTINE_SCHEMA AND r2.ROUTINE_NAME = 'cf_' + r1.ROUTINE_NAME