我正在使用Entity Framework 4.1和代码优先模型。一种常见的模式是许多对象引用拥有它们的用户,例如
public class Item
{
public User Owner { get; set; }
}
这会在数据库中创建一个可为空的列,但由于每个Item都必须拥有一个所有者,我希望该列标记为NOT NULL。如果我使用[Required]
属性,则提交表单以创建项会导致错误。该字段永远不会通过表单设置,只能在代码中手动设置。
答案 0 :(得分:3)
通常建议为此类情况创建单独的视图模型。使用数据库模型作为输入表单的视图模型被视为反模式。
创建一个与ItemViewModel
具有相同属性的Item
和相关的数据验证属性。您可能希望使用名为Automapper的库来自动化这些情况下所需的无聊属性 - 复制代码。