Archivo

Archive for the ‘LINQ’ Category

[LINQ] SELECT en LINQ To SQL

octubre 10, 2009 1 comentario

Buenas,

Aquí el primero de unos post rápidos de LINQ TO SQL, para aquellos que estamos aprendiendo :D. Comenzamos con un SELEC

 

1.- Select * from —-> xD

T-SQL

SELECT * FROM dbo.EntradasBlog

LINQ TO SQL

VB.NET

Dim [select] = From e In sel.EntradasBlogs Select e

C#

var selec = from e in sel.EntradasBlogs
                          select e;

 

2. Select —> en un solo campo

T-SQL

SELECT Titulo FROM dbo.EntradasBlog

LINQ TO SQL

VB.NET

Dim [select] = From e In sel.EntradasBlogs Select e.Titulo

C#

var selec = from e in sel.EntradasBlogs select e.Titulo;

3.- Select —> obtenido el primer registro

T-SQL

SELECT TOP 1 Titulo FROM dbo.EntradasBlog

LINQ TO SQL

VB.NET

Dim [select] = (From e In sel.EntradasBlogs Select e.Titulo).First

C#

var selec = (from e in sel.EntradasBlogs 
                         select e.Titulo).First();

4. Select —> un registro en especifico

T-SQL

SELECT Titulo FROM dbo.EntradasBlog
WHERE id = 1

LINQ TO SQL

VB.NET

Dim [select] = sel.EntradasBlogs.SingleOrDefault _
                (Function(c) c.Id = "0000000001")

donde ser es:

Dim sel As New DemosDataContext

ó

Dim [select] = (From e In sel.EntradasBlogs _
                     Where e.Id = "0000000001" _
                       Select e.Titulo).Single

C#

var selec = sel.EntradasBlogs.SingleOrDefault(c 
                        => c.Id == "0000000001");

ó

var selec = (from e in sel.EntradasBlogs
             where e.Id == "0000000001"
             select e).Single();

5. Select —> un numero especifico de registros

T-SQL

SELECT TOP 3 * FROM dbo.EntradasBlog 

LINQ TO SQL

VB.NET

Dim [select] = (From e In sel.EntradasBlogs).Take(3)

C#

var selec = (from e in sel.EntradasBlogs 
                         select e).Take(3);

6. Select—> con subquerys

T-SQL

SELECT Titulo FROM dbo.EntradasBlog 
WHERE id = (SELECT id from dbo.Entradas 
            WHERE (id = '0000000001'))  

LINQ TO SQL

VB.NET

Dim [select] = _
        (From e In sel.EntradasBlogs _
        Where (From en In sel.Entradas _
               Where (en.id = "0000000001") _
               Select en.id).Contains(e.Id) _
        Select e.Titulo)

C#

var selec = from e in sel.EntradasBlogs
                        where (
                                from en in sel.Entradas
                                where en.id == "0000000001"
                                select en.id
                                ).Contains(e.Id)
                        select e.Titulo;

Bien parece que estos son algunas maneras de realizar Select desde LINQ2SQL, ya en otros post’s iremos hablando sobre otras sentencias.

Etiquetas de Technorati: ,,,

[LINQ] Ejecutar Order By And Distinct en un mismo Query

agosto 31, 2009 Deja un comentario

Buenas,

Otro post rápido, bien usando LINQ To SQL  me encontré con un detalle, si escribo algo así:

Dim var = From org In Organismos _
       Join es In Estados On es.Id Equals org.IdEstado _
       Order By org.Nombre _
       Select org

Todo funciona correcto, pero si quiero agregarle un Distinct como siguie:

Dim var = (From org In Organismos _
       Join es In Estados On es.Id Equals org.IdEstado _
       Order By org.Nombre _
       Select org).Distinct

Esto deja de funcionar :S, bien, parece que el problema es del Framework de LINQ, o algo hay al momento de crear el query, pero a lo que voy, para poder solucionar esto debemos usar un Order By Compare como sigue:

 

Dim var = ((From org In Organismos _
       Join es In Estados On es.Id Equals org.IdEstado _
       Select org).Distinct).OrderBy(Function(orga) orga.Nombre)

Y listo, ya funciona correctamente 😀

Bien, como es un post rápido, pues ya lo dejo y seguiré trabajando :P, aquí una buena rolita que escucho mientras escribo el post

Etiquetas de Technorati: ,,
Categorías: LINQ, Tips

LINQ to MySQL and LINQ to Oracle Support Available in Beta

octubre 4, 2008 1 comentario

Una buena noticia para todos aquellos que desarrollan sobre .NET para Oracle o MySQL, ya que se esta trabajando para tener unas extensiones para trabajar de la misma manera que lo hacemos con SQL. Estas extensiones están actualmente en  Beta, y además en un futuro tendremos extensiones para BD’s PostgreeSQL y SQLite.

Puedes descargarlas las extensiones de LINQ para Oracle y MySQL desde aquí:

http://www.devart.com/linq/linqsupport.exe

Etiquetas de Technorati: ,,,

Vídeos o Screencast de Visual Basic 2008 (VB9)

diciembre 29, 2007 Deja un comentario

Hola, así es gracias aun comentario, ak este post en donde están los links para acceder a estos videos o screencast, como los quieran llamar sobre la nueva Versión de Visual Basic, estos son referenetes a LINQ, XML, Intellisense, Extensión de Métodos, Objetos, tipos Implícitos, pero en especial a LINQ.

Espero que les sean de utilidad y a disfrutar, todos están en Ingles, pero creo que son bastante entendibles así que aquí los Links:

wmp Partial Methods in VB9 wmpVB9 – Collection Initialisers
wmpVB Intellisense In VS2008 wmpVB9 – Extension Methods
wmpNamespaces in VB with LINQ to XML wmpVB9 – Implicit Types
wmpQuerying XML in VB with LINQ to XML wmpVB9 – Object Initialisers
wmpCreating XML in VB with LINQ to XML wmpLINQ to SQL- Overview
wmpVB9 – Dynamic Interfaces wmpLINQ to SQL- Data Model
wmpVB9 – Dynamic Identifiers wmpLINQ to SQL- Querying the Database
wmpVB9 – XML Support wmpLINQ to SQL- Updating the Database
wmpVB9 – Pieces of LINQ wmpCreate Excel Spreadsheets using LINQ to XML-
wmpVB9 – Anonymous Types wmpGet Started with LINQ

 

Como siempre digo: ya saben a disfrutar 🙂 y feliz año 2008

Categorías: ADO.NET, LINQ, Screencast, VB.NET, XML

Reflector, todo lo que siempre quisiste

diciembre 26, 2007 3 comentarios

Así es en algún lugar de la web me encontré con esta pequeña aplicación, que es muy poderosa, en este pequeño articulo descubriremos que es reflector y para que nos sirve.

primero entendamos lo que hace, o cómo funciona el CLR, antes debe quedar entendido que cuando nosotros presionamos F6 (construimos la solución de nuestra aplicación), lo que creamos es un *.exe o un *.dll, que en si es un código MSIL (Microsoft Intermediate Language), pero como sabemos este es el código que resulta de cada uno de los compiladores del lenguaje de .NET, (csc para C#, por ejemplo), lo que hace el CLR es compilar de nuevo este resultado, y ahí si es en donde es llevado a lenguaje máquina.

Aquí es a lo que harry le llama programación mezclada, un por raro el nombre, pero a lo que se refiere el buen amigo José David, es que es la parte en donde se desarrolla la magia de  .NET que nos permite programar algunos módulos en VB.NET y hacer uso de ellos en una aplicación de C#, de verdad, si no me creen, aquí un ejemplo y luego el uso de Reflector.

Primero creamos un proyecto de VB.NET que sea de tipo librería de clases, que llamaremos Películas (que será una demo de LINQ, todo esto con Visual Studio 2008).

Luego ya en el código, lo primero es importar los nombres de espacio que nos permite trabajar con LINQ y con Listas:

Imports System.Linq
Imports System.Collections.Generic

luego escribimos una clase llamada pelicula con las siguientes propiedades:

Public Class pelicula
        Public Titulo As String
        Public Genero As String
        Public Duracio As Double
        Public Musica As String
    End Class

después de esto agregamos un método que se llama PeliculasTerror, que recibe una variable de tipo string llamada genero, en la que agregamos a una lista de llamada ListaTerror tres películas dos de terror y una para niños, además realizamos una consulta (con ayuda de LINQ), en donde la filtramos por genero, luego mandamos a pantalla el resultado, el código sería el siguiente:

Public Sub PeliculasTerror(ByVal genero As String)
        Dim ListaTerror As New List(Of pelicula)
        Dim peli1 As New pelicula()
        peli1.Titulo = «Alvin y las Ardillas»
        peli1.Genero = «Comedia/Familiar»
        peli1.Duracio = 93
        peli1.Musica = «Cristopher Lennertz»
        ListaTerror.Add(peli1)

        Dim peli2 As New pelicula
        peli2.Titulo = «Gritos de la oscuridad»
        peli2.Genero = «Horror/Thriller»
        peli2.Duracio = 84
        peli2.Musica = «Shirley Walker»
        ListaTerror.Add(peli2)

        Dim peli3 As New pelicula
        peli3.Titulo = «El arte del Pánico»
        peli3.Genero = «Horror/Thriller»
        peli3.Duracio = 98
        peli3.Musica = «Tomandandy»
        ListaTerror.Add(peli3)

Dim peliculaTerro = From terror In ListaTerror Where terror.Genero Like genero Select terror

Console.WriteLine(«Las peliculas del genero {0} son: «, genero)
        For Each terror In peliculaTerro
            Console.WriteLine(«{0}», terror.Titulo)

        Next

    End Sub

Por último generamos y ya que no hay errores, terminamos con esta parte, ahora para mostrar que realmente es verdad lo que les digo, creamos un proyecto de tipo consola con C# y agregamos la referencia de  Peliculas.dll, que acabamos de crear y creamos una instancia de la referencia y pedimos que el usuario introduzca el género, el código seria como este:

static void Main(string[] args)
        {
            Peliculas.Peliculas peliculaTerror = new Peliculas.Peliculas();
            Console.WriteLine(«Introduce genero: «);
            string genero = Console.ReadLine();
            peliculaTerror.PeliculasTerror(genero);
            Console.ReadLine();
        }

ejecutamos y el resultado seria este:

clip_image002[4]

Como se pueden dar cuenta si es posible, ahora veamos cómo es que funciona Reflector, pero entes de eso veamos, que es. MSIL y como se ve, para ello lo encontramos en la ruta: C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin, aquí lo encontramos abrimos la dll de películas que hicimos en VB.NET que se muestro mas o menos así:

clip_image003[4]

 

 

 

 

 

 

Si damos doble clic en alguno de los métodos o clases, nos muestra el ya famoso código MSIL, por ejemplo demos doble clic en el de PeliculasTerror y veamos que se nos muestra algo así:

clip_image004[4]

Como se pueden dar cuenta este código no es muy entendible pero si = que el que hicimos con C#, para que vean hagan lo mismo, abran de nuevo otro MSIL y abran la aplicación de C#, y den doble clic en void Main, observen que es del mismo tipo:

clip_image005[4]

Insisto aun así no es muy entendible el código así que es aquí en donde entra esta herramienta tan genial, que es Reflector, para eso primero la descargamos de aquí: http://www.aisto.com/roeder/dotnet/Download.aspx?File=Reflector,

Ahora que hace esta herramienta,lo que hace es desensamblar el código MSIL y llevarlo a código .NET, de nuevo no me creen?, mta, pues chequemos el ejemplo jeje.

Veamos, primero al abrir Reflector nos muestra la opción de elegir entre la versión del Framework que queremos usar (ya soporta la ultima versión 3.5 y claro LINQ, por eso la demo si funciona jeje). nos muestra esta opción:

                   clip_image006[4]

Y para que vean que si funciona y muy bien, abrimos la .dll de películas que hicimos en VB.NET en Visual Studio 2008 y este es el resultado:

clip_image007[4]

En la figura se observa claramente las variables que declaramos en esta clase, y además el constructor que .NET nos genera por Default, ven que si es muy interesante esta Herramienta, podemos hacer todo esto con nuestros proyectos, y además podemos elegir el lenguaje en el que nos lo desensambla a .NET. Los lenguajes soportados actualmente son: C#, Visual Basic, Delphi, MC++, Chrome, y el mismo IL. Y también da la posibilidad de elegir la versión de .Net Framework sobre la cual va a mostrar las librerías del mismo .Net Framework. La navegación entre clases también es bastante buena.

No esperen más seguro cuando la comiencen a usar, formara parte de sus herramientas de cabecera.

Saludos desde Toluca de parte de su amigo Norberto, y Feliz año nuevo

Categorías: .NET, C#, LINQ, VB.NET

Software de Microsoft en Español

diciembre 8, 2007 Deja un comentario

Si eres de las personas que les gusta probar el software antes que los demás ya tienes el software, o te encuentras descargándolo en estos momentos, el registro le proveerá de acceso por períodos de tiempo a los recursos de evaluación, los mismos lo ayudarán a hacer una mejor evaluación para descubrir, evaluar e implementar el software.

top_tech_evaluacionsoft

Entonces este es un buen lugar para ti, te presento el Centro de evaluación de Software de Microsoft en Español, ¿Qué tienes que hacer?

  • Primero: Registrarse para experimentar la evaluación.
  • Siguiente: Descargue el software de prueba.
  • Luego: Revise su bandeja de entrada para obtener los recursos de evaluación.

Así que ya saben que esperan a disfrutara 🙂

URL: http://www.microsoft.com/latam/technet/prodtechnol/eval/default.mspx

Ahora HOL para C# 3.0

diciembre 6, 2007 Deja un comentario

hace unos días se anunciaron estos laboratorios para Visual Basci.NET HOL (Hands On Labs) y ahora pues como debe de ser, también están para C# 3.0, claro no podía quedarse atras, así que de igual manera esta en un documento en formato Microsoft Word 2007 de aproximadamente 30 páginas, que podréis obtener este link (HOL para C#).

                              MSVisual_Studio

Adicionalmente y sobre LINQ, también podréis conseguir los HOL de LINQ to SQL en este otro enlace.

Saludos y a disfrutar 🙂

Categorías: C#, LINQ, Visual Studio 2008

Conceptos básicos de LINQ para Visual Básica 2008

diciembre 5, 2007 5 comentarios

En el post pasado les puse el links para los laboratorios de Linq para Visual Studio 2008, pero ahora si quieren aprender de otra manera como trabaja LINQ principalmente en Visual Basic .NET 2008 aquí una serie de artículos que el equipo de Microsoft a publicado.

En estos artículos escritos en inglés, se ven con ejemplos las características y partes más importantes de LINQ.

Convirtiendo SQL to LINQ:

laboratorios de LINQ para Visual Studio 2008

diciembre 5, 2007 Deja un comentario

MSVisual_Studio Pues bien, a estas alturas ya la mayoría de los subscriptores de MSDN estamos probando este nuevo producto, y poco a poco salen nuevas herramientas o complementos para aprender a usarlo de mejor manera, aquí una buena noticia, Microsoft ha puesto a disposición una serie de laboratorios introductorios a LINQ para Visual Basic 2008.

Estos laboratorios se encuentran en dos documentos de Microsoft Word, uno dedicado a LINQ y otro a LINQ to SQL. El tamaño de estos documentos son de casi 200 Kb y 500 Kb cada .uno, y pueden ser descargados, aquí la URL.

Descarga:http://www.microsoft.com/downloads/details.aspx?FamilyID=e7fa5e3a-f8b2-4f77-bbcd-b5b978402dd1&DisplayLang=en

Ahora poster de los namespaces de .NET Framework 3.5

diciembre 4, 2007 Deja un comentario

Hace unos post atrás publique un poster sobre los atajos de teclado para Visual Studio 2008, y como seguramente la mayoría de los que caen por error en este blog al igual que yo están probando ya el Framework 3.5 junto a VS 2008 o esperan ya la fecha del lanzamiento para hacerlo, ahora toca turno de mencionarles este interesante poster de los namespace del framework 3.5

image

En donde los que se desatacan los de WPF (Windows Presentation Foundation), Windows Forms, ASP.NET, WCF (Windows Communication Foundation) y WWF (Windows Workflow Foundation), Data, XML y LINQ, y unos namespaces de carácter fundamental. Al igual que el otro poster les recomiendo lo descarguen e impriman y luego pequen en la pared cerca de donde acostumbran a  tirar código. El archivo es un .pdf de aproximadamente 1Mb y lo descargan de aquí

 url: http://download.microsoft.com/download/4/a/3/4a3c7c55-84ab-4588-84a4-f96424a7d82d/NET35_Namespaces_Poster_LORES.pdf

Visual Studio 2008 training y .NET framework 3.5

noviembre 21, 2007 2 comentarios

Este Training Kit incluye presentaciones, hands-on-labs y demos para aprender a utilizar las nuevas características de Visual Studio 2008, como así también las siguientes tecnologías:

  • LINQ
  • C# 3.0
  • Visual Basic 9
  • WCF
  • WF
  • WPF
  • ASP.NET AJAX
  • VSTO
  • Cardspace
  • Silverlight
  • Mobile
  • Application Lifecycle Management

                    vs2008_header

Espero que les sea útil.

Link Download

303 ejemplos de VisualBasic

septiembre 14, 2007 4 comentarios

VB Para todos aquellos que desarrollan en Visual Basic, les tengo buenas noticias para que sigan aprendiendo con ejemplos sobre VB. que en este caso no seria 101 ejemplos de Visual Basic, si no algo así como 303 ejemplos de Visual Basic jeje. Esto porque son tres enlaces diferentes cada uno con una descarga de 101 ejemplos.

Estos ejemplos son sobre Visual Basic 2003, Visual Basic 2005 y el ultimo y más interesante son los 101 ejemplos de LINQ para Visual Basic, bueno aqui les dejo los link de descarga de estos 303 ejemplos, la verdad es que no los he checado todos, espero que no se repitan algunos en estos 303 jeje.

101 ejemplos de Visual Basic 2003
101 ejemplos de Visual Basic 2003
101 ejemplos de Visual Basic 2005
Base Class Libraries – Group 1 Samples
Base Class Libraries – Group 2 Samples
Data Access Samples
.NET Compact Framework Samples
Tablet PC Samples
Visual Studio Tools for Office Samples
Web Development Samples
Windows Forms Samples
101 ejemplos de LINQ para Visual Basic
LINQ To SQL Samples
LINQ To DataSet Samples
LINQ To XML Samples

Categorías: LINQ, office, VB.NET, Visual Studio

Descarga LINQPad beta!

septiembre 6, 2007 Deja un comentario

vs2008here.jpg

LINQPad Beta, es una herramienta que nos permite realizar consultas directamente contra una base de datos, sin la necesidad de usar el SQL management Studio. Algo interesante de esta herramienta para Visual Studio 2008 Beta 2, es que no necesita instalación por ser un ejecutable.

LINQPad  fue desarrollado en C# 3.0, esto quiere decir que para ejecutarlo necesitamos tener instalado el .NET Framework 3.5 beta 2 o el Visual Studio 2008 beta 2, para que podamos comenzar aprobarlo.

Descarga: LINQPad ejecutable

Categorías: .NET, LINQ, Visual Studio

Entity Framework Tools CTP y el Beta 2

agosto 29, 2007 Deja un comentario

El equipo de ADO.Net acaba de anunciar la disponibilidad del Entity Framework de Microsoft y el nuevo Entity Framework Tools CTP 1. Aquí algunas de las nuevas características de estos productos.

Para comenzar que es el Entity framework?, en palabras resumidas se puede decir que permite manejar un modelo de objetos con relación entre ellos, expresados en .NET que persisten, gracias a providers escritos a distintas bases de datos relacionales. Tiene un lenguaje que describe el modelo, pata leer más acerca de una introducción lea The ADO.NET Entity Framework Overview

El Beta 2 del Entity Framework

Eventos para personalizar la generación de código
Tipos Abstract en modelos EDM
Tipos Complex
Soporte de archivos metadata <using>
Entity key serialization
Administración de conexión mejorada en ObjectContext
utilidad mejorada de DataBinding
Anotaciones de Metadata
Mejor soporte para span sobre LINQ para consultas de entidades
Mejoras para consulta LINQ: funciones adicionales canónicas y el mapeo auntomático de funciones del CLR a funciones de servidor
Un nuevo evnto parala extensibilidad de SaveChanges
Mejoras de utilidad y consistencia
Resultados Poliformorfos de procedimientos almacenados

Entity Designer

Genera un modelo de una base de datos y lo muestra en la superficie del diseñador
Controla los aspectos visuales de la superficie del diseño y persisten los cambios
Edita las propiedades del modelo conceptual
Agrega, suprime y corrige entidades, propiedades y escalares, asociaciones y herencia
Administración automática de propiedades de navegación
Reporte de error
valida el modelo y los mapeos usando Entity Framework runtime

Para checar estos productos aqui unos ejemplos:

Entity Framework Beta 2 LINQ Samples

Prerequisitos:

Descarga: ADO.NET Entity Framework Beta 2

Descarga: ADO.Net Entity Framework Tools CTP

Categorías: .NET, ADO.NET, LINQ