如何使实体框架属性不为NULL,但在表单提交中不需要

时间:2012-08-27 07:35:36

标签: entity-framework entity-framework-4.1 foreign-keys

我正在使用Entity Framework 4.1和代码优先模型。一种常见的模式是许多对象引用拥有它们的用户,例如

public class Item
{
    public User Owner { get; set; }
}

这会在数据库中创建一个可为空的列,但由于每个Item都必须拥有一个所有者,我希望该列标记为NOT NULL。如果我使用[Required]属性,则提交表单以创建项会导致错误。该字段永远不会通过表单设置,只能在代码中手动设置。

1 个答案:

答案 0 :(得分:3)

通常建议为此类情况创建单独的视图模型。使用数据库模型作为输入表单的视图模型被视为反模式。

创建一个与ItemViewModel具有相同属性的Item和相关的数据验证属性。您可能希望使用名为Automapper的库来自动化这些情况下所需的无聊属性 - 复制代码。