1

我是一名 ASP.NET Web 窗体开发人员。我的经理刚刚决定所有未来的项目都将使用 ASP.NET MVC 开发,所以我有很多东西要学得很快!

我们所有的数据操作都是通过内部 DBA 编写的存储过程处理的,我们将使用 EF。我之前在 Web 窗体项目中使用过 EF 来处理这种情况,并且没问题。我为 SP 结果生成复杂类型,并使用 Web 表单验证控件处理验证。

我一直在阅读的 ASP.NET MVC 3 教程和指南使用 EF Code First 并使用数据注释来处理验证,这一切看起来都非常好,但我没有那么奢侈。我查看了一些 Database First 指南,但它们并没有专注于存储过程的独占使用,也不是很有帮助。

我主要担心的是,如果可以避免的话,我不想编写服务器和客户端验证逻辑。我也不断看到很多关于 POCO 类的讨论,但我不确定它们是否适合这种情况,或者它们是否是“代码优先”。

我即将使用 ASP.NET MVC 3 开始我的第一个项目,我有几个问题。

有没有办法可以使用数据注释来处理我的客户端和服务器端验证,如果没有,我最好的选择是什么?

以这种方式使用 EF 时,POCO 类是否有用/相关?

任何人都可以指出一个好的教程/指南的方向和/或给我一些建议吗?

4

2 回答 2

1

您不必将 EF 与 MVC 一起使用。这只是最常见的情况。如果您打算使用 EF,那么您可能会从使用 EF(使用 ObjectContext,而不是 DbContext)和 DatabaseFirst 方法中获益更多。您的数据库优先方法只需将所有存储过程拖放到设计器中,然后使用存储过程生成对象上下文。您不需要 POCO,因为您不与实体打交道。

您确实需要数据传输对象。EF 将为您生成返回结果(尽管在某些情况下 EF 会感到困惑,您需要帮助它)。它将生成调用查询的方法和传递给查询的参数。

如果您选择不使用 EF,那么您可以使用普通的旧 ADO.NET 并创建一个数据访问层,或者您可以使用 Enterprise Framework Data Access Application Blocks 之类的东西。

关键是,即使教程都使用 EF,您也不必这样做。你可以使用任何你想要的技术。MVC 与数据无关。

于 2012-05-23T16:25:42.597 回答
0

一般来说,data annotations + jquery.validate 就足够了,如果没有,你可以试试 DataAnotaions.Extensions,如果你喜欢保持验证逻辑和 POCO 类分开,FluentValidation 是一个不错的选择。

教程:

 http://www.asp.net/mvc
 search mvcmusicstore  at codeplex.com
 search nerddinner at codeplex.com
于 2012-05-23T15:56:02.807 回答