【发布时间】:2016-08-25 04:50:35
【问题描述】:
我有一个 EF Code First 设置,我有一个通过注释标记为必需的特定列。此列具有在数据库中指定的默认值约束。
我想要做的是允许用户在表单上输入值,但如果他们省略它,则使用数据库中的默认值。我运气不好。
如果我不输入任何内容,表单上会显示必填错误。如果我添加[DatabaseGenerated(DatabaseGeneratedOption.Computed)] 注解,用户输入的值将被忽略,它始终使用数据库默认值。
【问题讨论】:
-
[Required]属性在这种情况下没有多大意义。如果您有默认值,则“假装”该字段为必填项是没有意义的。 -
我同意你的观点,但是因为这是一个字符串,如果我不指定 [Required],varchar 字段在数据库中将变为可为空(我不希望这样)。
-
这是 EF 中的一个已知问题。据我所知,这已在 EF 7 中修复。请参阅 data.uservoice.com/forums/…。目前,您唯一的选择是使用 TSQL 声明“默认约束”。抱歉,我以为你已经知道了。
-
@Brad 为什么您没有就以下解决方案提供任何反馈?告诉我们,如果对您没有帮助,我们可以删除它。
-
@Sampath 因为两个答案都不是可接受的答案。
标签: c# entity-framework