实体的 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"/>
覆盖属性的默认值只会影响新数据;它不会更改数据库中已经存在的值。如果您需要更改旧数据,可以使用升级版本触发器(BeforeUpgradeVersionTrigger
或 AfterUpgradeVersionTrigger
)。
是否可以在不弄乱生产数据库的情况下更改 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"/>
覆盖属性的默认值只会影响新数据;它不会更改数据库中已经存在的值。如果您需要更改旧数据,可以使用升级版本触发器(BeforeUpgradeVersionTrigger
或 AfterUpgradeVersionTrigger
)。