实体的 eti 默认值

eti default value on entity

是否可以在不弄乱生产数据库的情况下更改 eti 中的默认值或字段?有一个默认为其他的下拉列表,我想在下拉列表中默认为另一个值。我不想弄乱数据库。除了 eti 文件本身之外,还有其他方法可以在下拉列表中设置默认值吗?

你为什么要弄乱数据库?

SQL 中的默认值实际上为输入期间 NULL 的字段设置了该值。这不应该需要删除数据库,也不应该破坏任何东西。

至于改变这个。如果那不是 OOTB 实体,您应该能够在 .eti.

中做到这一点

关于您的用例 - 下拉列表中的值是什么?我假设那是一个类型列表,这才是你真正应该修改的(在那里寻找优先级)。

编辑 覆盖例如 OOTB 实体的列 User.eti

  • 打开 User.etx 或创建它(如果它不存在)。 modules\configuration\config\extensions\entity\User.etx.

  • 右键单击您要覆盖的列 - ExternalUser 在您的例子中。选择覆盖。

  • 在列表的顶部应该创建一个 column-override - 更改那里的默认值。

如果它是一个 OOTB .eti 文件,那么您应该创建一个 .etx 文件并使用 <column-override><typekey-override> 元素覆盖默认属性值(您还可以使用其他覆盖元素取决于元素类型,例如 <array-override><foreignkey-override> 等),例如:

User.eti:

  <column
    default="false"
    desc="Example"
    name="EntityName"
    nullok="false"
    type="bit"/>

User.etx:

  <column-override
    default="true"
    name="EntityName"/>

覆盖属性的默认值只会影响新数据;它不会更改数据库中已经存在的值。如果您需要更改旧数据,可以使用升级版本触发器(BeforeUpgradeVersionTriggerAfterUpgradeVersionTrigger)。