[LINQ] SELECT en LINQ To SQL
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
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
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
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.
[LINQ] Ejecutar Order By And Distinct en un mismo Query
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
LINQ to MySQL and LINQ to Oracle Support Available in Beta
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í:
Vídeos o Screencast de Visual Basic 2008 (VB9)
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:
Como siempre digo: ya saben a disfrutar 🙂 y feliz año 2008
Reflector, todo lo que siempre quisiste
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:
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í:
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í:
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:
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:
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:
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
Software de Microsoft en Español
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.
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
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#).
Adicionalmente y sobre LINQ, también podréis conseguir los HOL de LINQ to SQL en este otro enlace.
Saludos y a disfrutar 🙂
Conceptos básicos de LINQ para Visual Básica 2008
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
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.
Ahora poster de los namespaces de .NET Framework 3.5
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
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í
Visual Studio 2008 training y .NET framework 3.5
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
Espero que les sea útil.
Link Download
303 ejemplos de VisualBasic
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 |
Descarga LINQPad beta!
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
Entity Framework Tools CTP y el Beta 2
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:
- ADO.NET Entity Framework Beta 2
- para una mayor experiencia instalar the ADO.NET Entity Framework Tools August 2007 CTP
- SQL Server 2005 download the Express Edition
Descarga: ADO.NET Entity Framework Beta 2
Descarga: ADO.Net Entity Framework Tools CTP
Comentarios recientes