ASP NET – LINQ – Language Integrated Query – MVC – C#

Publicado: 5 de julho de 2015 em C#

O Language Integrated Query (LINQ) é um componente do Microsoft .NET que adiciona funcionalidades de consulta em algumas linguagens de programação .NET. O LINQ corresponde a uma sintaxe unificada, inicialmente incorporada às linguagens C# e Visual Basic, para consultas em fontes de dados variadas. A sintaxe de consulta da LINQ foi inspirada na Structured Query Language (SQL), que é uma linguagem padrão para comunicação com bancos de dados relacionais. Assim como na linguagem SQL, as expressões de consulta LINQ permitem a construção de instruções variadas para extração de informações.  Ele define um conjunto de métodos chamados operadores de consulta, expressões lambda e tipos anônimos.

O LINQ é um conjunto de recursos introduzidos no Visual Studio 2008 que amplia os poderosos recursos de consulta para a sintaxe da linguagem C# e Visual Basic. O LINQ proporciona padrões intuitivos para o desenvolvimento queries para consulta e atualização de dados além de poder ser extendida para dar suporte a qualquer tipo de banco de dados. O Visual Studio inclui assemblies provedores de LINQ que permitem o uso do LINQ com coleções do .NET Framework, bancos de dados do SQL Server, conjuntos de dados ADO.NET e documentos XML.

LINQ: https://msdn.microsoft.com/pt-br/library/bb397897.aspx

101 Exemplos LINQ: https://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b

Usando o LINQ

1 – Você pode criar uma aplicação web MVC usando o template padrão, criar um modelo de dados Code First e alimenta-lo com alguns dados no banco de dados MSSQL ou usar o exemplo anterior clicando aqui. Você deve obter uma página web com uma visão que exibe os seguintes dados:

MVC - Aplicação

MVC – Aplicação

2 – Modifique o controlador e a visão de acordo com os códigos abaixo para criar uma pesquisa e uma busca para sua visão:

LINQ - Seleção e Busca

LINQ – Seleção e Busca

Exemplo:

Neste exemplo utilizamos a aplicação criada anteriormente e utilizamos a linguagem LINQ para exibir os dados exibidos na visão e também para criar uma pesquisa que busca os caracteres iniciais do campo chamado cursos.

C#

Controlador

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

namespace WebApplication1.Controllers
{
    public class HomeController : Controller
    {
        // Cria instancia do banco de dados
        MinhaAppMeuDB DB = new MinhaAppMeuDB();

        public ActionResult Index(string busca = null)
        {
            // Usando uma sintaxe simples do LINQ
            // Seleciona todos as propriedades dos cursos
            // Ordena pela propriedade curso
            // e pesquisa por caracteres iniciais do campo curso

            var modelo = from r in DB.Cursos
                         where busca == null || r.Curso.StartsWith(busca)
                         orderby r.Curso
                         select r;
                
            return View(modelo);
        }

        // Cria método override 
        protected override void Dispose(bool disposing)
        {
            // Limpa os recursos

            if (DB != null)
            {
                DB.Dispose();
            }
            base.Dispose(disposing);
        }

        public ActionResult About()
        {
            ViewBag.Message = "Your application description page.";
            
            return View();
        }

        public ActionResult Contact()
        {
            ViewBag.Message = "Your application description page.";
            
            return View();
        }
    }
}

Visão

@model IEnumerable<WebApplication1.Models.CursosModelo>

@{
    ViewBag.Title = "Home Page";
}

<div class="jumbotron">
    <h1>Desenvolvimento Aberto - ASP.NET</h1>
    <p class="lead">ASP.NET - MVC - Entity Framework - HTML, CSS and JavaScript.</p>    
</div>
<form>
    <input type="search" name="busca" />
    <input type="submit" name="Buscar por nome" />
</form>
<br />
<table style="width:700px">
    <tr>
        <th>Cursos</th>
        <th>Linguagem</th>
        <th>Descrição</th>
    </tr>

    @foreach (var item in Model)
    {
        <tr>
            <td>@item.Curso</td>
            <td>@item.Linguagem</td>
            <td>@item.Descr</td>
        </tr>
            
    }
</table>

 

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s