Asp.net mvc 3 ASP.NET MVC 3,实体框架,存储过程和验证

Asp.net mvc 3 ASP.NET MVC 3,实体框架,存储过程和验证,asp.net-mvc-3,stored-procedures,entity-framework-4,validation,poco,Asp.net Mvc 3,Stored Procedures,Entity Framework 4,Validation,Poco,我是一名ASP.NET Web窗体开发人员。我的经理刚刚决定,所有未来的项目都将使用ASP.NETMVC进行开发,所以我似乎很快就有很多东西要学 我们所有的数据操作都是通过内部DBA编写的存储过程来处理的,我们将使用EF。我以前在一个Web表单项目中使用过EF来处理这个场景,它还可以。我为SP结果生成复杂类型,并使用Web表单验证控件处理验证 我一直在阅读的ASP.NET MVC 3教程和指南首先使用EF代码,并使用数据注释来处理验证,这一切看起来都很不错,但我没有那种奢侈。我看了一些Datab

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

我们所有的数据操作都是通过内部DBA编写的存储过程来处理的,我们将使用EF。我以前在一个Web表单项目中使用过EF来处理这个场景,它还可以。我为SP结果生成复杂类型,并使用Web表单验证控件处理验证

我一直在阅读的ASP.NET MVC 3教程和指南首先使用EF代码,并使用数据注释来处理验证,这一切看起来都很不错,但我没有那种奢侈。我看了一些Database First指南,但它们并不是专门针对存储过程的使用,也不是很有帮助

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

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

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

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


有谁能给我指出一个好的教程/指南的方向和/或给我一些建议吗?

一般来说,数据注释+jquery.validate就足够了,如果没有,你可以尝试数据注释。扩展,如果你喜欢将验证逻辑和POCO类分开,FluentValidation是一个不错的选择

教程:

 http://www.asp.net/mvc
 search mvcmusicstore  at codeplex.com
 search nerddinner at codeplex.com

一般来说,data annotations+jquery.validate就足够了,如果不行,您可以尝试DataAnnotations.Extensions,如果您希望将验证逻辑和POCO类分开,FluentValidation是一个不错的选择

教程:

 http://www.asp.net/mvc
 search mvcmusicstore  at codeplex.com
 search nerddinner at codeplex.com

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

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

如果选择不使用EF,则可以使用普通的旧ADO.NET并创建数据访问层,或者可以使用类似Enterprise Framework数据访问应用程序块的功能


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

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

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

如果选择不使用EF,则可以使用普通的旧ADO.NET并创建数据访问层,或者可以使用类似Enterprise Framework数据访问应用程序块的功能


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

+1我们也不使用EF,严格来说,它是一个生成的DAL,包含DAAB代码和DTO,所有数据库工作都由DBA处理。我所要做的就是从我的BLL实体调用正确的CRUD方法谢谢你的回答和评论。所以我可以用验证注释来修饰我的BLL类,然后处理我的客户端和服务器端验证吗?这是共识。。有一个插件,如果您用注释装饰BLL,您可以将它们映射到ViewModels,这些规则将被转换并在模型中可用,称为AutoMapper。我从未亲自使用过它,虽然+1我们也不使用EF,严格来说,它是一个包含DAAB代码和DTO的DAL生成,所有数据库工作都由DBA处理。我所要做的就是从我的BLL实体调用正确的CRUD方法谢谢你的回答和评论。所以我可以用验证注释来修饰我的BLL类,然后处理我的客户端和服务器端验证吗?这是共识。。有一个插件,如果您用注释装饰BLL,您可以将它们映射到ViewModels,这些规则将被转换并在模型中可用,称为AutoMapper。我从来没有亲自用过