在使用 CF 实体时,我遇到了定义使用枚举值的实体实例的问题。我可以添加 entitytor 的实例,但是在构建或保存期间会出现一个错误:
CF0134:实体“Namespace.Entity”的键属性“EnumType”的实例值不能等于“System.Int32”类型的键属性默认值“0”...
XML 将按预期呈现属性的关联枚举值。
看起来问题仅在使用第一个枚举值(关联值 0)时出现。其他线路不会有问题。在定义枚举值或使用它们时有什么特别的事情要做吗?
感谢您的回答
在使用 CF 实体时,我遇到了定义使用枚举值的实体实例的问题。我可以添加 entitytor 的实例,但是在构建或保存期间会出现一个错误:
CF0134:实体“Namespace.Entity”的键属性“EnumType”的实例值不能等于“System.Int32”类型的键属性默认值“0”...
XML 将按预期呈现属性的关联枚举值。
看起来问题仅在使用第一个枚举值(关联值 0)时出现。其他线路不会有问题。在定义枚举值或使用它们时有什么特别的事情要做吗?
感谢您的回答
CodeFluent 实体为任何类型的属性定义了“默认值”的概念,包括值类型和枚举。默认值允许存储null
在数据库中,而不必使用 .NET Nullable 类型。
<cf:enumeration name="EmailStatus">
<cf:enumerationValue name="Valid" /> <!-- will become NULL in the Database -->
<cf:enumerationValue name="Invalid" />
</cf:enumeration>
尽管默认情况下启用默认值行为,但您也可以更改它:
在属性级别通过将其usePersistenceDefaultValue
属性设置为false
:
<cf:property typeName="EmailStatus" usePersistenceDefaultValue="false" />
在枚举级别通过将其usePersistenceDefaultValue
属性设置为false
:
<cf:enumeration usePersistenceDefaultValue="false" />
在项目级别通过将其defaultUsePersistenceDefaultValue
属性设置为false
:
<cf:project defaultUsePersistenceDefaultValue="false" />
http://blog.codefluententities.com/2012/11/15/property-default-values-and-enumerations/