1

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

4

2 回答 2

1

你为什么要搞乱数据库?

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

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

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

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

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

  • 右键单击要覆盖的列 -ExternalUser在您的情况下。选择覆盖。

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

于 2019-04-09T08:45:55.277 回答
1

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

用户.eti:

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

用户.etx:

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

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

于 2019-04-09T13:23:12.127 回答