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.