似乎 MVC3 和 EF4.1 的大部分焦点都围绕“代码优先”——我似乎找不到任何满足以下条件的示例或教程:
- 使用现有的 SQLServer 数据库
- 有单独的网络和数据访问项目(我们将有多个网络应用程序共享相同的数据访问类)
- 验证建议
是否存在这样的示例或教程?是否有任何记录的“最佳实践”来说明如何实现这一目标,或者不以这种方式构建解决方案的理由?
这是很常见的场景,这取决于您是否想要使用 EDMX 文件进行映射,或者是否想要在代码中定义映射(例如代码优先)。
这两种场景都可以先作为数据库来完成
- 您将使用 Visual Studio 中内置的 EF 工具从现有数据库创建 EDMX,并将使用 DbContext T4 生成器模板来获取 POCO 类和 DbContext 派生类
- 您将下载EF 电动工具 CTP http://blogs.msdn.com/b/adonet/archive/2011/05/18/ef-power-tools-ctp1-released.aspx您将使用其逆向工程功能为您生成代码映射、POCO 类和上下文
这些方法都不会添加数据注释。实体上的数据注释不应用于客户端验证(这是不好的做法),除非您正在执行非常简单的应用程序。通常,您的视图有一些更高级的期望,并且视图中的验证可能与实体上的验证不同。例如,插入视图和更新视图可能需要不同的验证,并且不可能使用实体上的单组数据注释来执行它。因此,您应该将用于验证的数据注释移动到专门的视图模型,并将实体转换为视图模型,反之亦然(您可以使用自动映射器 http://automapper.codeplex.com/来简化这个)。
无论如何都是可以向生成的类添加数据注释 https://stackoverflow.com/questions/5128303/how-to-add-validation-to-my-pocotemplate-classes/5128373#5128373通过好友课程,但正如前面提到的,这不是一个好的做法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)