Funciones Lambda


Modelo

Padres e Hijos

Carlos  (Rubio / 50 años)   
    - Jorge (Moreno / 5 años)
    - Leonor(Rubia / 6 años)
Antonio (Moreno, 32 años)   
    - Marta (Rubia / 3 años)
    - Elena (Rubia / 10 años)
María (Pelirroja, 37 años)  
    - Juan (Pelirrojo / 8 años)
    - Antonio (Rubia / 9 años)
Julia (Rubia, 29 años)      
    - Rafael (Moreno / 8 años)
    - Francisco (Rubio / 9 años)
    - Inmaculada (Moreno / 9 años)            




¿Qué es y Cómo funciona?

Tenemos un listado de relaciones entre Padres, Hijos y TipoPelo.

Pulsaremos en empezar para obtener mediante funciones lambda preguntas y respuestas relativas a dicho listado, y continuaremos haciendo click en el botón "Nueva pregunta".

(Al llegar a la última pregunta regresaremos a la primera).

 

Teoría

Una buena introducción a las Funciones Lambda se puede ver aquí.

Mi experiencia con este tipo de métodos de operador en el uso de consultas LINQ es muy frecuente y de forma esencial cuando se trabaja con un contexto de EF.

Se ha creado un Contexto mostrado en el diagrama izquierdo .edmx a partir de 3 tablas en BBDD por Data First.

Para mostrar las distintas preguntas/respuestas la página llama por ajax a un controlador/accion donde ocurre la lógica y finalmente devuelve una vista parcial convertida a string gracias a un helper como se puede ver aquí.

Para el enunciado de la pregunta número 10, teñir a un hijo se ha realizado mapeando la entidad Julia-Rafael a un ViewModel Padre con una propiedad listado de HijosViewModel, con ayuda de AutoMapper

 

Configuración y Test

Se ha utilizado Visual Studio Express 2013 para Web y actualmente Visual Comunity 2015.
La programación se ha desarrollado con C#, Razor y acceso a Base de Datos por Entity Framework.

Las tablas mostradas en la aplicación se encuentran en un Microsoft® SQL Server® 2012 y actualmente en SQL de Azure

El alojamiento de las páginas se realizó en https://www.smarterasp.net con el plan .NET ADVANCE y actualmente se han movido a 2 Aplicaciones Web en Azure: una para este proyecto Web MVC y otra para un WCF usada en un ejemplo.

Se ha testeado con exito en diferentes navegadores y sistemas operativos, en pantallas de PC, tabletas y moviles.