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