2009-03-30 16 views
7

Estaba leyendo Linq to SQL que se descontinuó. Por un tiempo, dejé de aprender Linq en absoluto. Incluso en asp.net, la última vez que lo verifiqué, sus tutoriales de acceso a datos usaban adaptadores de tabla y clases completas. Luego están los tutoriales de linq. Ahora que he leído esto y que Entity Framework es el nuevo camino a seguir, ¿eso significa que todas las "cosas" de Linq sobre las que he estado leyendo durante un año y medio, lo bueno que es, etc., es todo esto? ¿se acaba de ir? Nadie parece establecerse en el camino correcto para hacer las cosas o al menos de una manera estándar con los productos de MS. Y entiendo que no puedes decir que una forma es adecuada para todo. Pero, en este caso particular, no entiendo por qué no puede establecerse el acceso a los datos.¿Es LinqToSQL lo mismo que Linq?

O, ¿Linq to SQL es solo la parte ORM de Linq? ¿Qué aprendería exactamente ahora si quisiera usar un ORM? He leído varias cosas sobre StackOverflow, pero ninguna que realmente me ayude a saber qué hacer.

Parece que nHibernate puede ser mejor que cualquiera de las opciones de Microsoft. Sí, sé que hay otros (subsónicos, y otros fueron mencionados en varias preguntas de SO.)

Gracias.

Respuesta

13

LINQ a SQL se construye en la parte superior de LINQ, que es uno de los idiomas añadido fundamental en la cuenta de .NET Framework 3.5.

Técnicamente, otros ORM pueden implementar sus propios sistemas LINQ, por ejemplo, NHibernate ya tiene LINQ to NHibernate. Esto se suma a los proporcionados en el marco, como LINQ a XML, LINQ a Objetos, etc.

+0

Hay un número ridículo de proveedores, incluido LINQ a Twitter, etc. Me atrevo a decir que estos son útiles para alguien que está por ahí. :) – ZombieSheep

+0

LINQ to Twitter ?! Debería buscar eso. : P –

+0

http://www.codeplex.com/LinqToTwitter * suspiro * - Acabo de morir un poco por dentro. ;) – ZombieSheep

3

Linq es mucho más que Linq-to-SQL. Cosas como Linq-to-Objects y Linq-to-XML son parte de la tecnología, por ejemplo.

¡Dudo que se vayan! Dedos cruzados. ;-)

5

Linq to sql es solo uno de muchos proveedores de linq (hay linq a db4o, linq a starcounter, linq a objetos, linq to ado y muchos, muchos más). El marco de la entidad tiene su propio proveedor de linq, llamado linq to enteties. Tu año de lectura sobre linq no está perdido.

2

LINQ no se ha ido. LINQ to SQL tampoco tiene, pero no es la plataforma estratégica de Microsoft para el acceso a datos, eso sería Entity Framework. EF usa LINQ to Entities, por lo tanto, si ha dedicado tiempo a aprender sobre LINQ, seguirá siendo válido y útil.

LINQ no es una tecnología específica del producto, sin embargo. Es fácil aprovechar el poder y la flexibilidad en colecciones de (casi) todos los tipos. p.ej.

List<MyType> myList = new List<MyType>(); 
// populate the list here 
var filteredResults = from o in myList 
         where o.property == "hello world" 
         select o; 

es (conceptualmente) válido, incluso si el ejemplo de código aquí es defectuoso.

10

Entity Framework ciertamente no significa que LINQ se está yendo, el Entity Framework es un proveedor de LINQ.

LINQ es una colección completa de tecnologías, y más que eso, es un patrón que también puede implementar para su propio proveedor de datos.

LINQ to SQL es solo un ejemplo de ese patrón. Por lo que vale, creo que LINQ to SQL está siendo menos enfatizado en lugar de desaparecer, pero ya veremos ...

Personalmente, creemos que LINQ a objetos del proveedor LINQ más útil, en primer lugar :)

0

LINQ es una biblioteca para el procesamiento de secuencias de datos. Y es bastante impresionante. Estas secuencias de datos pueden ser cualquier cosa que implemente IEnumerable, o puede ser cualquier secuencia proporcionada por adaptadores.

Linq to SQL es un adaptador que permite a una base de datos SQL proporcionar secuencias de datos que son compatibles con LINQ.

También hay un LINQ to XML que es un adaptador que permite tratar un documento XML como una secuencia de datos, lo que permite LINQ para procesarlo.

LINQ es solo el lenguaje de consulta, y es extremadamente bueno en lo que hace. No tiene nada que ver con bases de datos o SQL. Definitivamente vale la pena aprender solo para poder procesar colecciones en memoria fácilmente.

Cuestiones relacionadas