Usando Linq To SQL e MVC: parte II

Postado por: Tiago Lemos em 4th dez, 2008 | Categoria: ASP.NET, C#, Linq, SQL Server, VB

Bom, já estava na hora de finalizar esse post da utilização do MVC com LINQ To SQL.
Depois de mapearmos a tabela a ser utilizada no projeto, já podemos criar consultas, realizarmos inserções, alterações e exclusão de valores.

Listando as informações

Importe a namespace “Mvc.Models” (onde Mvc é o nome da namespace que estou utilizando).

Faça um foreach na classe “tb_cidade” em um ViewData. Escreva o nome da cidade atráves do “c.nome_cidade”.
Bom, esse código foi criado na página “Index.aspx” que é uma View, dentro da pasta Home. (View/Home/Index.aspx), preste atenção que Home é o nosso controle, então será nesse controle que iremos retornar os valores.


<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="Mvc.Views.Home.Index" %>
<%@ Import Namespace="Mvc.Models" %>
<asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">
   <h2><%= Html.Encode(ViewData["Message"]) %></h2>
   <p>To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>.</p>

   <ul>
     <% foreach (tb_cidade c in (IEnumerable)ViewData.Model)
     { %>
       <li><%= c.nome_cidade %></li>
     <% } %>
   </ul>
</asp:Content>

Bem simples né? Mas como essa informação foi preenchida neste ViewData?

Retornando os dados em um Controller

Devemos retornar os dados no Controller “HomeController.cs” que fica na pasta (Controllers/HomeController.cs).

Primeiro devemos importar a namespace “Mvc.Models”, depois devemos instanciar a classe LINQ To SQL criado anteriormente, neste caso o EstudoDataContext (Estudo.dbml).

Depois devemos montar nossa consulta LINQ.

IQueryable query = (from c in estudoDC.tb_cidades
select c);

Neste caso, estou retornando todos os dados da tabela “tb_cidades” em uma interface IQueryable.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;
using Mvc.Models;

namespace Mvc.Controllers
{
  [HandleError]
  public class HomeController : Controller
  {
    public ActionResult Index()
    {
      EstudoDataContext estudoDC = new EstudoDataContext();
      IQueryable query = (from c in estudoDC.tb_cidades
                         select c);
      return View(query);
    }
  }
}

Agora sim, ficou fácil entender como conseguimos retornar esses dados para uma View.

Inserção, Alteração e Exclusão de informações

Veja abaixo os exemplos de insert, delete e update:


//Realizando um insert
tb_cidade cidade = new tb_cidade();
cidade.nome_cidade = "São Paulo";
estudoDC.tb_cidades.InsertOnSubmit(cidade);

//Realizando um delete
tb_cidade cidade = estudoDC.tb_cidades.Single(c => c.cidade_pk == 1);
estudoDC.tb_cidades.DeleteOnSubmit(cidade);

//Realizando um update
tb_cidade cidade = estudoDC.tb_cidades.Single(c => c.cidade_pk == 1);
cidade.nome_cidade = "Rio de Janeiro";

//Para qualquer uma das ações acima você deve comitar a alteração
//através do seguinte código
estudoDC.SubmitChanges();

Bem, caso vocês tenham alguma dúvida podem entrar em contato comigo, mas a idéia deste post foi como realmente implementar essas ações usando o MVC e LinqToSQL, e não explicar cada um das linhas detalhadamente.
Espero que tenham gostado. Em breve tem mais.

Um comentário para “ Usando Linq To SQL e MVC: parte II ”

  1. Tiago Lemos» Arquivos » LinqToXML: facilitando a busca em XML disse,

    [...] simples do que realizar uma busca usando LinqToSQL (veja o post aqui), é realizar uma busca em um arquivo XML usando [...]

     Deixe seu comentário:





trackback Trackback URI | rsscomment RSS dos comentários