解决方案非常简单。不幸的是,它不是完美的,因为 PowerDesigner 在某些情况下无法执行事件处理程序(出于某种未知原因)。下面这个小vbscript应该可以搞定。将创建扩展模型定义文件并将其附加到项目中。该脚本是表元类的验证事件处理程序(尽管它是一个自动修复而不是验证)。
Function %Validate%(obj, ByRef message)
' Implement your object validation rule on <parent> here
' and return True in case of success, False otherwise with a message
dim col
for each col in obj.columns
if col.Primary = true then
if left(col.name,3) <> "id_" then
With col
.name = "id_" & .name
.SetNameAndCode .Name, "", True
End With
end if
else
if left(col.name,3) = "id_" then
with col
.name = right(.name, len(.name)-3)
.SetNameAndCode .Name, "", True
end with
end if
end if
next
%Validate% = True
End Function
归功于提供原始代码的 Richard Kier。谢谢,理查德。