1

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

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

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

4

1 回答 1

3

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

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

于 2012-08-27T16:43:37.877 回答