似乎MVC3和EF4.1的大部分关注点都在“代码优先”上 - 我似乎找不到符合以下标准的示例或教程:
- 使用现有的SQLServer数据库
- 为Web和数据访问使用单独的项目(我们将有多个Web应用程序共享相同的数据访问类)
- 验证建议
这两种方法都不会添加数据注释。实体上的数据注释不应用于客户端验证(这是不好的做法),除非您正在进行非常简单的应用程序。通常,您的视图具有一些更高级的期望和验证,而视图中的验证可能与实体上的验证不同。例如,插入视图和更新视图可能需要不同的验证,而无法使用实体上的单个数据注释集来执行此操作。因此,您应该将数据注释移动到专门的视图模型中进行验证,并将实体转换为视图模型,反之亦然(您可以使用 AutoMapper 来简化此过程)。
无论如何,可以通过伙伴类向生成的类添加数据注释,但正如前面提到的那样,这不是一个好的做法。