是否可以防止 SQL 生产者只覆盖其中一个表列?
Is it possible to prevent the SQL Producer from overwriting just one of the tables columns?
场景:计算的 属性 需要可用于 RAW 方法。模型中设置的 IsComputed 属性 将不起作用,因为它的值对 RAW 方法不可用。
尝试的解决方案:直接在 SQL table 上创建一个 computed column 而不是在中设置 IsComputed 属性该模型。指定 CodefluentEntities 不覆盖计算列。我希望 BOM 读取计算的 SQL 字段与读取普通数据库字段没有什么不同。
问题:我不知道如何防止 Codefluent 实体覆盖计算列。我尝试使用 production flags 并为 .cfp 中的 属性 设置 produce="false"。都没有用。
问题:是否可以防止 Codefluent Entities 覆盖我的计算列,如果可以,如何做?
备用解决方案:备用解决方案是在SQL生产者完成生成后执行以下TSQL脚本。
ALTER TABLE PunchCard DROP COLUMN PunchCard_CompanyCodeCalculated
GO
ALTER TABLE PunchCard
ADD PunchCard_CompanyCodeCalculated AS CASE
WHEN PunchCard_CompanyCodeAdjusted IS NOT NULL THEN PunchCard_CompanyCodeAdjusted
ELSE PunchCard_CompanyCode
END
GO
使解决方案工作所需的额外配置:为了使该解决方案工作,还必须配置 BOM,以便它不会尝试保存与计算的关联数据列。这可以通过使用高级属性的模型来完成。在我的例子中,我选择了 CompanyCodeCalculated 属性。去了高级设置。并将保存设置设置为 False。
问题:在知识中心的某处有一个关于如何在 SQL Producer 完成后自动执行 SQL 脚本的传递参考,但我找不到。有人知道这是怎么做到的吗?
Post 使用评论: 只是想让人们知道我实施了这种方法并且到目前为止对结果很满意。
您正在寻找的解决方案是here
你可以执行任何你喜欢的自定义T-SQL脚本,唯一的前提是给脚本一个特定的名称,以便Producer知道何时执行它。
即如果您希望自定义脚本在 table 生成后执行,请将您的脚本命名为
after_[ProjectName]_tables
.
将您的自定义 t-sql 文件与 codefluent 生成的文件一起保存并构建项目。
在我的具体情况下,我必须在我的 table 列之一中启用全文索引,我为该功能编写了 SQL 脚本,并将其保存为
`after_[ProjectName]_relations_add`
这是它们在我的文件目录中的样子
file directory
场景:计算的 属性 需要可用于 RAW 方法。模型中设置的 IsComputed 属性 将不起作用,因为它的值对 RAW 方法不可用。
尝试的解决方案:直接在 SQL table 上创建一个 computed column 而不是在中设置 IsComputed 属性该模型。指定 CodefluentEntities 不覆盖计算列。我希望 BOM 读取计算的 SQL 字段与读取普通数据库字段没有什么不同。
问题:我不知道如何防止 Codefluent 实体覆盖计算列。我尝试使用 production flags 并为 .cfp 中的 属性 设置 produce="false"。都没有用。
问题:是否可以防止 Codefluent Entities 覆盖我的计算列,如果可以,如何做?
备用解决方案:备用解决方案是在SQL生产者完成生成后执行以下TSQL脚本。
ALTER TABLE PunchCard DROP COLUMN PunchCard_CompanyCodeCalculated
GO
ALTER TABLE PunchCard
ADD PunchCard_CompanyCodeCalculated AS CASE
WHEN PunchCard_CompanyCodeAdjusted IS NOT NULL THEN PunchCard_CompanyCodeAdjusted
ELSE PunchCard_CompanyCode
END
GO
使解决方案工作所需的额外配置:为了使该解决方案工作,还必须配置 BOM,以便它不会尝试保存与计算的关联数据列。这可以通过使用高级属性的模型来完成。在我的例子中,我选择了 CompanyCodeCalculated 属性。去了高级设置。并将保存设置设置为 False。
问题:在知识中心的某处有一个关于如何在 SQL Producer 完成后自动执行 SQL 脚本的传递参考,但我找不到。有人知道这是怎么做到的吗?
Post 使用评论: 只是想让人们知道我实施了这种方法并且到目前为止对结果很满意。
您正在寻找的解决方案是here
你可以执行任何你喜欢的自定义T-SQL脚本,唯一的前提是给脚本一个特定的名称,以便Producer知道何时执行它。
即如果您希望自定义脚本在 table 生成后执行,请将您的脚本命名为
after_[ProjectName]_tables
.
将您的自定义 t-sql 文件与 codefluent 生成的文件一起保存并构建项目。
在我的具体情况下,我必须在我的 table 列之一中启用全文索引,我为该功能编写了 SQL 脚本,并将其保存为
`after_[ProjectName]_relations_add`
这是它们在我的文件目录中的样子
file directory