linq to entities

27
“Año de la Inversión para el Desarrollo Rural y la Seguridad Alimentaria” Facultad de Ingeniería Escuela Académica Profesional de Ingeniería de Sistemas y Computación UPLA Universidad Peruana Los Andes UNIDAD DE EJECUCIÓN CURRICULAR: DESARROLLO DE SISTEMAS I DOCENTE: VEGA FLORES, JORGE ALBERTO ALUMNO: CAIRAMPOMA ARTETA, RENZO LUIS LINQ TO ENTITIES

Upload: luiz-cairampoma-arteta

Post on 27-Oct-2015

76 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Linq to Entities

“Año de la Inversión para el Desarrollo Rural y la Seguridad Alimentaria”

Facultad de Ingeniería

Escuela Académica Profesional de Ingeniería de Sistemas y Computación

UPLAUniversidad Peruana Los Andes

UNIDAD DE EJECUCIÓN CURRICULAR:

DESARROLLO DE SISTEMAS I

DOCENTE:

VEGA FLORES, JORGE ALBERTO

ALUMNO:

CAIRAMPOMA ARTETA, RENZO LUIS

HUANCAYO- PERU

LINQ TO ENTITIES

Page 2: Linq to Entities

2013

INDICE

DEDICATORIA...............................................................................................................................1

INTRODUCCION............................................................................................................................2

1. LINQ TO ENTITIES...........................................................................................................3

2. ¿QUÉ ES LINQ TO ENTITIES?......................................................................................4

3. ORM-MAPEO OBJETO-RELACIONAL........................................................................4

4. ENTITY FRAMEWORK....................................................................................................5

5. COMPARANDO LINQ PARA SQL CON LINQ A ENTIDADES................................6

6. LAS CONSULTAS DE LINQ TO ENTITIES..................................................................7

6.1. CONVERSIÓN DE LAS CONSULTAS..................................................................8

7. SINTAXIS DE CONSULTA..............................................................................................9

7.1. LOS OPERADORES DE CONSULTA ESTÁNDAR DE LINQ TO ENTITIES CONSULTAS.........................................................................................................................9

7.2. LOS OPERADORES DE CONSULTA ESTÁNDAR DE LINQ TO ENTITIES CONSULTAS.......................................................................................................................11

Proyección y filtrado Métodos....................................................................................11

Únete Métodos.............................................................................................................11

Establecer métodos.....................................................................................................12

Métodos Orden............................................................................................................12

Métodos de agrupamiento..........................................................................................13

Métodos de agregación..............................................................................................13

Métodos de Tipo..........................................................................................................15

Métodos de paginación...............................................................................................15

8. LAMBDA...........................................................................................................................16

8.1. DECLARACIÓN......................................................................................................17

8.2. EJEMPLOS DE FUNCIONES LAMBDA.............................................................17

WEBGRAFÍA:...........................................................................................................................18

Page 3: Linq to Entities

DEDICATORIA

Les dedico este trabajo a mis padres

porque siempre me brindan su apoyo

incondicional en mi plan de ser profesional.

1

Page 4: Linq to Entities

INTRODUCCION

Actualmente, la mayor parte de las aplicaciones empresariales se escriben

para tener acceso a datos de bases de datos relacionales. En algún momento,

estas aplicaciones tienen que interactuar con los datos representados en un

formato relacional. El modelo relacional está optimizado para conseguir un

almacenamiento y recuperación eficientes, no para el modelado conceptual que

se usa en la programación orientada a objetos. Varias tablas normalizadas

suelen corresponder a una sola clase, y las relaciones entre las clases no se

representan del mismo modo que las relaciones entre tablas.

2

Page 5: Linq to Entities

1. LINQ TO ENTITIES

Entity Framework permite a los programadores trabajar con datos en forma de

objetos y propiedades específicos del dominio, por ejemplo, con clientes y

direcciones, sin tener que pensar en las tablas de las bases de datos

subyacentes y en las columnas en las que se almacenan estos datos. A través

de la infraestructura de Servicios de objeto de Entity Framework, ADO.NET

expone una vista conceptual común de los datos, incluidos los datos

relacionales, como objetos del entorno .NET. Esto hace que la capa de objetos

sea un objetivo ideal para la compatibilidad con LINQ. Esta tecnología LINQ,

LINQ to Entities, permite a los programadores crear consultas flexibles, pero

con establecimiento inflexible de tipos, en el contexto del objeto de Entity

Framework mediante el uso de expresiones y de operadores de consulta

estándar de LINQ directamente desde el entorno de desarrollo (Véase Figura

1.0).

Figura 1.0: Arquitectura de Linq to Entities

3

Page 6: Linq to Entities

2. ¿QUÉ ES LINQ TO ENTITIES?

LINQ to Entities es una nueva característica de acceso a datos que está

basado en ADO.NET Entity Framework. 

LINQ to Entities proporciona la capacidad de realizar consultas integradas

en lenguajes (LINQ) que permite a los desarrolladores de software escribir

consultas contra el modelo conceptual de Entity Framework mediante

Visual Basic o Visual C#. Las consultas con Entity Framework se

representan mediante consultas de árboles de comandos, que se ejecutan

en el contexto del objeto. LINQ to Entities convierte las consultas de

Language-Integrated Queries (LINQ) en consultas de árboles de

comandos, ejecuta las consultas en Entity Framework y devuelve objetos

que se pueden usar tanto en Entity Framework como en LINQ.1

3. ORM-MAPEO OBJETO-RELACIONAL

ORM es sinónimo de mapeo objeto-relacional. A veces se llama O / RM o

mapeo O / R. Se trata de una técnica de programación que contiene un

conjunto de clases que asignan bases de datos relacionales entidades a

objetos en un lenguaje de programación específico.

Cada base de datos está representada por un objeto de contexto de ORM

en el lenguaje de programación específico, y base de datos de las

entidades tales como tablas están representadas por las clases, con las

relaciones entre estas clases. Por ejemplo, el ORM puede crear

una Alumno de clase para representar la tabla Alumno y

una matricula clase para representar la tabla matricula.  El ORM es

responsable de las asignaciones y las conexiones entre estas clases y la

base de datos. Así que, para la aplicación, la base de datos ya está

totalmente representada por estas clases. La aplicación sólo tiene que

hacer frente a estas clases, en lugar de con la base de datos física. La

aplicación no tiene que preocuparse acerca de cómo conectarse a la base

de datos, la forma de construir las sentencias SQL, cómo utilizar el

mecanismo de bloqueo adecuado para garantizar la concurrencia, o cómo

1 http://msdn.microsoft.com/es-es/library/bb386964(v=vs.90).aspx

4

Page 7: Linq to Entities

manejar las transacciones distribuidas. Estas actividades de base de datos

relacionados son manejadas por el ORM.

4. ENTITY FRAMEWORK

ADO.NET Entity Framework (EF) es una nueva adición a la familia de

Microsoft ADO.NET. Permite crear aplicaciones de acceso a datos

mediante programación en contra de un modelo de aplicación conceptual

en lugar de programar directamente en un esquema de almacenamiento

relacional. El objetivo es disminuir la cantidad de código y el mantenimiento

requerido para aplicaciones orientadas a datos. Aplicaciones de Entity

Framework proporciona las siguientes ventajas:

Las aplicaciones pueden trabajar en términos de un modelo

conceptual más centrado en las aplicaciones, incluyendo tipos con

herencia, miembros complejos y las relaciones.

Las solicitudes se liberan de las dependencias incluidas en el código

en un motor de datos en particular o un esquema de almacenamiento.

Correlaciones entre el modelo conceptual y el esquema de

almacenamiento específicas pueden cambiar sin cambiar el código de

la aplicación.

Los desarrolladores pueden trabajar con un modelo de objetos de

aplicación coherente que se puede asignar a diferentes esquemas de

almacenamiento, posiblemente ejecutados en diferentes sistemas de

gestión de bases de datos.

Varios modelos conceptuales se pueden asignar a un solo esquema

de almacenamiento.

Integrada Idioma Query (LINQ apoyo) proporciona la validación de

sintaxis en tiempo de compilación Query en un modelo conceptual

(Véase Figura 3.0).

5

Page 8: Linq to Entities

Figura 3.0: Linq to Entities2

5. COMPARANDO LINQ PARA SQL CON LINQ A ENTIDADES

Características LINQ para SQL LINQ a Entidades

Modelo conceptual de datos No Sí

Esquema de almacenamiento No Sí

Esquema de asignación No Sí

Nuevo proveedor de acceso a datos

No Sí

Soporte de base de datos no SQL Server

No Sí

Conexión directa de base de datos

Sí No

Extensiones de lenguaje apoyan

Sí Sí

Procedimientos almacenados Sí Sí

Herencia de tabla única Sí Sí

2 http://www.codeproject.com/Articles/246861/LINQ-to-Entities-Basic-Concepts-and-Features

6

Page 9: Linq to Entities

Características LINQ para SQL LINQ a Entidades

Herencia múltiple de mesa No Sí

Entidad única de varias tablas No Sí

Lazy Loading Support Sí Sí

6. LAS CONSULTAS DE LINQ TO ENTITIES

Una consulta es una expresión que recupera datos de un origen de datos. Las

consultas se suelen expresar en un lenguaje de consulta especializado, como

SQL para bases de datos relacionales y XQuery para XML. Por lo tanto, los

programadores han tenido que aprender un lenguaje de consultas nuevo para

cada tipo de origen de datos o formato de datos que consultan. Language-

Integrated Query (LINQ) ofrece un modelo coherente y más sencillo para

trabajar con los datos de varios formatos y orígenes de datos. En una consulta

de LINQ siempre se trabaja con objetos de programación.

Una operación de consulta de LINQ consta de tres acciones: obtener el origen

o los orígenes de datos, crear la consulta y ejecutar la consulta.

Los orígenes de datos que implementan las interfaces

genéricas IEnumerable<T> o IQueryable<T> pueden consultarse a través de

LINQ. Las instancias de la clase genérica ObjectQuery<T>, que implementa la

interfaz genérica IQueryable<T>, actúan como origen de datos para las

consultas LINQ to Entities. La clase ObjectQuery<T> genérica representa una

consulta que devuelve una colección de cero o más objetos con tipo. También

puede hacer que el compilador deduzca el tipo de una entidad utilizando la

palabra clave var de C# (Dim en Visual Basic).

En la consulta se especifica exactamente la información que se desea

recuperar del origen de datos. Una consulta también puede especificar cómo

se debe ordenar, agrupar y conformar esa información antes de que se

devuelva. En LINQ, una consulta se almacena en una variable. Si la consulta

devuelve una secuencia de valores, la propia variable de la consulta debe ser

de un tipo que se pueda consultar. Esta variable de consulta no realiza ninguna

7

Page 10: Linq to Entities

acción y no devuelve datos; solamente almacena la información de la

consulta. Tras crear una consulta debe ejecutarla para recuperar los datos.

6.1.CONVERSIÓN DE LAS CONSULTAS

Para ejecutar una consulta de LINQ to Entities en Entity Framework, se

debe convertir a una representación de árbol de comandos que se pueda

ejecutar en Entity Framework.

Las consultas de LINQ to Entities están compuestas de operadores de

consulta estándar de LINQ (como Select, Where y GroupBy) y

expresiones (x > 10, Contact.LastName, etcétera). Los operadores de

LINQ no se definen en una clase, sino que son los métodos de una

clase. En LINQ, las expresiones pueden contener todo lo que permitan los

tipos dentro del espacio de nombres System.Linq.Expressions y, por

extensión, todo lo que se pueda representar en una función lambda. Se

trata de un superconjunto de las expresiones permitidas por Entity

Framework, que, por definición, están restringidas a las operaciones

admitidas tanto en la base de datos como por ObjectQuery<T>.

En Entity Framework, tanto los operadores como las expresiones se

representan mediante una jerarquía de tipos simple, que después se

coloca en un árbol de comandos. Entity Framework usa el árbol de

comandos para ejecutar la consulta. Si la consulta de LINQ no se puede

expresar como un árbol de comandos, se producirá una excepción

cuando se convierta la consulta. La conversión de las consultas de LINQ

to Entities implica dos conversiones más: la de los operadores de consulta

estándar y la de las expresiones.

Hay varios operadores de consulta estándar de LINQ que no tienen una

conversión válida en LINQ to Entities. Si se intenta usar estos operadores,

se producirá una excepción al convertir la consulta. Para obtener una lista

de los operadores de LINQ to Entities admitidos, vea Métodos admitidos y

no admitidos de LINQ (LINQ to Entities).

8

Page 11: Linq to Entities

Para obtener más información sobre cómo usar los operadores de consulta

estándar en LINQ to Entities, vea Operadores de consulta estándar en las

consultas de LINQ to Entities.

En general, las expresiones de LINQ to Entities se evalúan en el servidor, de

modo que es previsible que el comportamiento de la expresión no siga la

semántica de CLR. Para obtener más información, vea Expresiones en

consultas de LINQ to Entities.

Para obtener información sobre cómo las llamadas a métodos de CLR se

asignan a funciones canónicas del origen de datos, vea Asignar método CLR a

función canónica.

Para obtener información sobre cómo llamar a funciones canónicas, de base de

datos y personalizadas desde consultas de LINQ to Entities, vea Llamar a

funciones en consultas de LINQ to Entities.

7. SINTAXIS DE CONSULTA

LINQ to Entities puede estar compuesta de dos sintaxis diferentes: sintaxis

de expresiones de consulta y sintaxis de consultas basadas en

métodos. Sintaxis de expresiones de consulta es nueva en C # 3.0 y Visual

7.1.LOS OPERADORES DE CONSULTA ESTÁNDAR DE LINQ TO ENTITIES CONSULTAS

En una consulta, debe especificar la información que desea recuperar del

origen de datos. Una consulta también puede especificar cómo se debe

ordenar que la información, agrupados y en forma antes de ser

devuelta. LINQ proporciona un conjunto de métodos de consulta estándar

que se puede utilizar en una consulta. La mayoría de estos métodos

funciona en secuencias, en este contexto, una secuencia es un objeto cuyo

tipo implementa la interfaz IEnumerable o la interfaz IQueryable interfaz. La

funcionalidad de consulta de los operadores de consulta estándar incluye el

9

Page 12: Linq to Entities

filtrado, proyección, agregación, clasificación, agrupación, paginación,

etc. Algunos de los operadores de consulta estándar que se utilizan con

más frecuencia han dedicado sintaxis de palabras clave para que puedan

ser convocadas por el uso de la sintaxis de expresiones de consulta. Una

expresión de consulta es una forma diferente, más legible para expresar

una consulta que el equivalente basado en el método. Cláusulas de

expresiones de consulta se traducen en llamadas a los métodos de

consulta en tiempo de compilación. Para obtener una lista de los

operadores de consulta estándar que tienen cláusulas de expresiones de

consulta equivalentes, consulte operadores de consulta estándar . 3

No todos los operadores de consulta estándar son compatibles con LINQ to

Entities. Para obtener más información, consulte Métodos de LINQ

admitidos y no admitidos (LINQ to Entities) . Este tema proporciona

información acerca de los operadores de consulta estándar que es

específico de LINQ to Entities.Para obtener más información acerca de los

problemas conocidos en LINQ to Entities, vea 

MÉTODOS DE COMBINACIÓN

La combinación es una operación importante de las consultas

dirigidas a orígenes de datos que no tienen relaciones navegables

entre sí. Una combinación de dos orígenes de datos es la asociación

de objetos en un origen de datos con objetos de otro origen de datos

que comparten un atributo o propiedad comunes. Los métodos de

combinación son Join y GroupJoin.

MÉTODOS DE AGRUPAMIENTO

El agrupamiento hace referencia a la operación de colocar los datos

en grupos de manera que los elementos de cada grupo compartan

un atributo común. El método de agrupamiento es GroupBy.

3 http://msdn.microsoft.com/es-es/library/bb399414(v=vs.90).aspx

10

Page 13: Linq to Entities

7.2.LOS OPERADORES DE CONSULTA ESTÁNDAR DE LINQ TO ENTITIES CONSULTAS

Proyección y filtrado Métodos

Proyección refiere a la transformación de los elementos de un conjunto

de resultados en una forma deseada. Por ejemplo, se puede proyectar

un subconjunto de las propiedades que necesita de cada objeto en el

conjunto de resultados, se puede proyectar una propiedad y realizar un

cálculo matemático en él, o que se pueda proyectar todo el objeto del

conjunto de resultados. Los métodos de proyección

son Select y SelectMany .

El filtrado se refiere a la operación de restringir el conjunto de resultados

para contener sólo aquellos elementos que coinciden con una condición

especificada. El método de filtrado es dónde .

La mayoría de las sobrecargas de los métodos de proyección y filtrado

se admiten en LINQ to Entities, con la excepción de los que aceptan un

argumento posicional.

Únete Métodos

Unirse es una operación importante en las consultas a orígenes de datos

que no tienen relaciones navegables entre sí. Una combinación de dos

fuentes de datos es la asociación de los objetos en una fuente de datos

con objetos en el otro origen de datos que comparten un atributo o

propiedad común. Los métodos de combinación

son Únete y GroupJoin .

La mayoría de las sobrecargas de los métodos de combinación son

compatibles, con la excepción de los que utilizan

un IEqualityComparer . Esto es debido a que el comparador no se puede

convertir en el origen de datos.

11

Page 14: Linq to Entities

Establecer métodos

Establecer operaciones en LINQ son operaciones de consulta que basan

su resultado conjuntos en la presencia o ausencia de elementos

equivalentes dentro de la misma o en otra colección (o conjunto). Los

métodos de ajuste son todo

, Cualquier , Concat , Contiene , DefaultIfEmpty,Distinct , EqualAll,

Salvo , Intersección y unión .

La mayoría de las sobrecargas de los métodos set se admiten en LINQ

to Entities, aunque hay algunas diferencias de comportamiento en

comparación con LINQ to Objects. Sin embargo, los métodos que

utilizan un conjunto  IEqualityComparer no son compatibles debido a que

el comparador no se puede convertir en el origen de datos.  

Métodos Orden

Orden, o clasificación, se refiere a la ordenación de los elementos de un

conjunto de resultados sobre la base de uno o más atributos. Si

especifica más de un criterio de clasificación, puede romper los lazos

dentro de un grupo.

La mayoría de las sobrecargas de los métodos de ordenación son

compatibles, con la excepción de los que utilizan un IComparer . Esto es

debido a que el comparador no se puede convertir en el origen de datos.

 Los métodos de

ordenaciónson OrderBy , OrderByDescending , ThenBy , ThenByDes

cending yReverse .

Debido a que la consulta se ejecuta en el origen de datos, el

comportamiento de pedido puede diferir de las consultas ejecutadas en

el CLR. Esto se debe a opciones de pedido, como el caso ordenamiento,

kanji pedido, y nulo el pedido, se puede configurar en el origen de

datos. Dependiendo de la fuente de datos, estas opciones de ordenación

pueden producir resultados diferentes en el CLR.

12

Page 15: Linq to Entities

Si especifica el mismo selector de llave en más de una operación de

ordenación, se producirá un ordenamiento duplicado. Esto no es válido y

una excepción será lanzada.

Métodos de agrupamiento

Agrupación se refiere a la colocación de datos en grupos de manera

que los elementos en cada grupo comparten un atributo común. El

método de agrupamiento es GroupBy .

La mayoría de las sobrecargas de los métodos de agrupamiento son

compatibles, con la excepción de los que utilizan

un IEqualityComparer . Esto es debido a que el comparador no se puede

convertir en el origen de datos.

Los métodos de agrupamiento se asignan a la fuente de datos

utilizando una clara sub-consulta para el selector de llave. La

comparación selector de llav

sub-consulta se ejecuta utilizando la semántica de la fuente de datos,

incluidas las cuestiones relacionadas con la comparación nulos valores.

Métodos de agregación

Una operación de agregación calcula un único valor a partir de una

colección de valores. Por ejemplo, el cálculo de la temperatura media

diaria del valor de un mes de los valores diarios de temperatura es una

operación de agregación. Los métodos de agregación

son agregados , Promedio , Cuenta ,LongCount , Max , Min y Sum .

La mayoría de las sobrecargas de los métodos de agregación son

compatibles. Para el comportamiento relacionado con valores nulos, los

métodos de agregación utilizan la semántica de fuente de datos. El

comportamiento de los métodos de agregación cuando están en juego

valores nulos puede ser diferente, dependiendo de que se está utilizando

fuentes de datos de back-end. Comportamiento de agregación utilizando

13

Page 16: Linq to Entities

la semántica del origen de datos también puede ser diferente de lo que

se espera de los métodos de CLR. Por ejemplo, el comportamiento

predeterminado de la Suma método en SQL Server es ignorar los

valores nulos en lugar de lanzar una excepción.

Las excepciones que resultan de la agregación, como un

desbordamiento de la Suma función, se lanzan como excepciones de

orígenes de datos o excepciones Entity Framework durante la

materialización de los resultados de la consulta.

Para aquellos métodos que implican un cálculo más de una secuencia,

tales como suma o media , el cálculo real se realiza en el

servidor. Como resultado, conversiones de tipos y la pérdida de

precisión se pueden producir en el servidor, y los resultados pueden

diferir de lo que se espera el uso de la semántica de CLR.

El comportamiento predeterminado de los métodos de agregación para

valores nulos / no nulo se muestra en la siguiente tabla:

 

MétodoNo hay datos

Todos los valores nulos

Algunos valores nulos

No hay valores nulos

Promedio

Devuelve nulo.

Devuelve nulo. Devuelve el promedio de los valores no nulos en una secuencia.

Calcula el promedio de una secuencia de valores numéricos.

Contar Devuelve 0

Devuelve el número de valores nulos en la secuencia.

Devuelve el número de valores nulos y no nulo en la secuencia.

Devuelve el número de elementos de la secuencia.

14

Page 17: Linq to Entities

Max Devuelve nulo.

Devuelve nulo. Devuelve el valor máximo no nulo en una secuencia.

Devuelve el valor máximo de una secuencia.

Min Devuelve nulo.

Devuelve nulo. Devuelve el valor no nulo mínimo de una secuencia.

Devuelve el valor mínimo de una secuencia.

Suma Devuelve nulo.

Devuelve nulo. Devuelve la suma de los valores no nulos en una secuencia.

Calcula la suma de una secuencia de valores numéricos.

Métodos de Tipo

Los dos métodos de LINQ que tienen que ver con la conversión de tipo y

pruebas es ambos apoyados en el contexto de Entity Framework. Esto

significa que los únicos tipos admitidos son los tipos que se asignan al

tipo Entity Framework correspondiente. Para obtener una lista de este

tipo, vea Tipos del Entity Data Model . Los métodos del tipo

están Convertir y OFTYPE .

OfType es compatible con los tipos de entidad. Convert es apoyado por

modelos conceptuales tipos primitivos. El C # es y como también se

apoyan métodos.

Métodos de paginación

Operaciones de paginación devuelven un único elemento específico de

una secuencia. Los métodos de elementos

son ElementAt , Primera , FirstOrDefault, pasado , LastOrDefault , in

dividual , Saltar , Tome , TakeWhile .

No se admiten Un número de los métodos de paginación, ya sea debido

a la incapacidad para asignar funciones a la fuente de datos o a la falta

15

Page 18: Linq to Entities

de implícita ordenamiento de conjuntos en la fuente de datos. Los

métodos que devuelven un valor por defecto se limitan a modelos

conceptuales tipos primitivos y tipos de referencia con valores

predeterminados nulos. Métodos de paginación que se ejecutan en una

secuencia vacía devolverá null.

8. LAMBDA

Una expresión lambda es una función o una subrutina sin nombre que se

puede utilizar donde haya un delegado válido. Las expresiones lambda se

usan en consultas de LINQ basadas en métodos como argumentos de los

métodos de operador de consulta estándar, tales como Where. Son

ampliamente usadas en el ORM de Microsoft, Entity Framework, donde se

puede ver claramente todo su potencial.

Lambda son funciones, es decir, un conjunto de instrucciones capaces de

retornar un valor partiendo de los parámetros que se les suministra, aunque

en determinados casos es posible que no reciba ningún parámetro, o que

realicen una acción sin retornar nada. Igual que una función tradicional. Y

de hecho, en el cuerpo de una expresión lambda puede haber casi de todo:

llamadas a otras funciones, expresiones, bucles, declaraciones de

variables. Sin embargo, a diferencia de los métodos o funciones habituales,

las lambdas no necesitan de un identificador, puesto que se declaran justo

en el momento en que van a asignarse a una variable o a utilizarse como

parámetro de una función, pasando el destinatario de esta asignación a

actuar como delegado, o puntero, hacia la misma, o a ser el contenedor del

árbol de expresión que la representa.

16

Page 19: Linq to Entities

8.1.DECLARACIÓN

Una expresión lambda se declara mediante la siguiente sintaxis:

8.2.EJEMPLOS DE FUNCIONES LAMBDA

17

param => expr

- param será la lista de parámetros separados por comas

- => es la separación entre los parámetros y la declaración de la función

- expr es la implementación de la función

num => num * 2 // Lambda con un parámetro que retorna // el doble del valor que se le pasa.

(a, b) => a + b // Lambda con dos parámetros que retorna // la suma de ambos.

n => n / 10 . // Función que divide un número entre 10

(x,y) => x / y. //Función que divide dos números

N => { N = n*2; return n;}. // Función que multiplica un número por dos

num => { // Lambda con cuerpo que recibe un int x = new Random().Next(); // entero, y retorna la suma de éste return num+x; // con un número aleatorio.

} () => DateTime.Now // Lambda que no recibe parámetros // y retorna la fecha y hora del sistema.

msg => Console.WriteLine(msg); // Recibe un parámetro, realiza una // acción y no retorna nada.

Page 20: Linq to Entities

El tipo de retorno es inferido por el contexto. También destacar que si se

realizan varias operaciones es necesario utilizar return. Los paréntesis sólo

son obligatorios cuando hay más de un parámetro.

WEBGRAFÍA:

LINQ to Entities. 2013 Microsoft. http://msdn.microsoft.com/en-us/library/bb386964.aspx

Operadores de consulta estándar en las consultas de LINQ to Entities. 2013 Microsoft.http://msdn.microsoft.com/es-es/library/bb738551.aspx

18