Página Inicial > Entity Framework, MVC > EF4 POCO + Data Annotations + ASP.NET MVC 2.0

EF4 POCO + Data Annotations + ASP.NET MVC 2.0

Olá pessoal, nos ultimos posts andei falando bastando sobre o Entity Framework 4 CTP2. Estou realmente empolgado com a galera do EF e a API Code-Only. Eu sempre achei a idéia de usar data annotations muito legal, ainda mais depois que vi como a coisa funciona muito bem com o ASP.NET MVC.

O ASP.NET MVC possui uma integração que possibilita a validação client-side e server-side de uma maneira bem facil. Eu sempre usei LINQ e EF nos meus projetos, sempre com a ferramenta de geração automática de entidades estas ferramentas de geração de código dificultam o trabalho de quem quer usar data annotations. Agora com a API Code-Only tudo se encaixa perfeitamente! estou pensando em mudar a infra do meu projeto e utilizar EF4 POCO+Data annotations+MVC 2. Vamos ver um exemplo de como as coisas funcionam, vou exibir apenas a integração, você pode obter a solução completa no link de download no final do post.

 

   1: public class Contact

   2: {

   3:     public int ContactID { get; set; }

   4:     

   5:     [Required(ErrorMessage="O nome deve ser preenchido"), StringLength(100)]

   6:     public String Name { get; set; }

   7:     

   8:     [Required(ErrorMessage="O e-mail deve ser preenchido")]

   9:     public String Email { get; set; }

  10:     

  11:     public String Phone { get; set; }

  12: }

Classe code-only com as configurações usando Data annotations

 

 

   1: [AcceptVerbs(HttpVerbs.Post)]

   2: public ActionResult Create([Bind(Exclude = "ID")] Contact contact)

   3: {

   4:     try

   5:     {

   6:         

   7:         if (!ModelState.IsValid)

   8:             return View();

   9:   

  10:  

  11:         return RedirectToAction("Index");

  12:     }

  13:     catch

  14:     {

  15:         return View();

  16:     }

  17: }

Ação responsável pela criação
 
 
 
 
   1: public ActionResult Create([Bind(Exclude = "ID")] Contact contact)

Estamos falando que ID não precisa ser carregado.

 

 

O código abaixo é o código da view create.

<%@ Import Namespace="DataLayer.Entities" %>

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<DataLayer.Entities.Contact>" %>

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">    Create</asp:Content><asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">    <script src="../../Scripts/jquery-1.3.2.min.js" type="text/javascript"></script>
   1:  

   2:     <script src="../../Scripts/jquery.validate.min.js" type="text/javascript">

   1: </script>

   2:     <script src="../../Scripts/MicrosoftMvcJQueryValidation.js" type="text/javascript">

</script>
<h2>
Contato</h2>
<%

   1:  Html.EnableClientValidation(); 

%>
<%

   1: = Html.ValidationSummary() 

%>
<%

   1:  using (Html.BeginForm())

   2:        {

%>
<%

   1: =Html.EditorForModel() 

%>
<p>
<input type="submit" value="Save" />
</p>
<%

   1:  } 

%>
<div>
<%

   1: =Html.ActionLink("Back to List", "Index") 

%>
</div>
</asp:Content>

 

A validação client-side está na seguinte parte:

<script src="../../Scripts/jquery-1.3.2.min.js" type="text/javascript"></script>
   1:  

   2:   <script src="../../Scripts/jquery.validate.min.js" type="text/javascript">

   1: </script>

   2:   <script src="../../Scripts/MicrosoftMvcJQueryValidation.js" type="text/javascript">

</script>

 

<%
   1:  Html.EnableClientValidation(); 

%>

 

A integração é muito simples! o código completo está abaixo

 

código fonte

Author: higor.cesar Categories: Entity Framework, MVC Tags:
  1. Nenhum comentário ainda.
  1. Nenhum trackback ainda.