Adaptando de Manera Sencilla Con AutoMapper Nuestros Data Transfer Objects (DTO) Entity Framework,...

10
15/10/2015 Adaptando de manera sencilla con AutoMapper nuestros Data Transfer Objects (DTO) Entity Framework, WCF C# | Jhonnys López DevNinja .… file:///C:/Users/greg/Desktop/PLANTILLAS%20T4/Adaptando%20de%20manera%20sencilla%20con%20AutoMapper%20nuestros%20Data%20Transfer… 1/10 Jhonnys López – DevNinja .NET Bienvenidos a mi blog sobre tecnología Microsoft .NET: C#, WCF, ASP.NET, Entity Framework. Consultar mi blog Buscar... Sigue mis publicaciones vía Email Ingresa la dirección de correo con la cual deseas seguir mi blog. Únete a otros 645 seguidores Introduce tu dirección de correo electrónico Seguirme! El Autor del Blog jhonnys.lopez Adaptando de manera sencilla con AutoMapper nuestros Data Transfer Objects (DTO) Entity Framework, WCF C# WCF retornar un listado de entidades Entity Framework con C# y Visual Studio 11 Servicios WCF con Entity Framework 4.3.1 C# y Visual Studio 11 Partiendo de la Base de Datos SchemaModel First Entity Framework 4.3.1 y C# Procedimientos Almacenados, Transacciones en Entity Framework 4.3.1 con C# y Visual Studio 11 Insignia Facebook Jhonnys López Celedon Crea tu insignia BDotNet BDotNet BDotNet MCS Colombia Microsoft Community Specialist MCS Colombia Temas que me interesan Arquitectura (1) EntityFramework (11) WCF (3) Mi Twitter We build the thing wrong, or we build the wrong thing. By Steve Smith @ardalis El: 8 months ago Yo era un duro en esta guía en mis tiempos jajaja :( todos mejoramos An Idiots Guide to Really Really Bad Programming codeproject.com/Articles/55892… El: 8 months ago "Your code is so abstract it deserve being put in the Museum for Modern Art." LOL Cuando nos pasamos con las abstracciones @nicolocodev El: 8 months ago

description

dto transfer

Transcript of Adaptando de Manera Sencilla Con AutoMapper Nuestros Data Transfer Objects (DTO) Entity Framework,...

Page 1: Adaptando de Manera Sencilla Con AutoMapper Nuestros Data Transfer Objects (DTO) Entity Framework, WCF C#

15/10/2015 Adaptando de manera sencilla con AutoMapper nuestros Data Transfer Objects (DTO) Entity Framework, WCF C# | Jhonnys López DevNinja .…

file:///C:/Users/greg/Desktop/PLANTILLAS%20T4/Adaptando%20de%20manera%20sencilla%20con%20AutoMapper%20nuestros%20Data%20Transfer… 1/10

Jhonnys López – DevNinja .NETBienvenidos a mi blog sobre tecnología Microsoft .NET: C#, WCF, ASP.NET, Entity Framework.

Consultar mi blog

Buscar...

Sigue mis publicaciones vía Email

Ingresa la dirección de correo con la cual deseas seguir mi blog.

Únete a otros 645 seguidores

Introduce tu dirección de correo electrónico

Seguirme!

El Autor del Blog

jhonnys.lopezAdaptando de manera sencilla con AutoMapper nuestros Data Transfer Objects (DTO) Entity Framework, WCF C#WCF retornar un listado de entidades Entity Framework con C# y Visual Studio 11Servicios WCF con Entity Framework 4.3.1 C# y Visual Studio 11Partiendo de la Base de Datos SchemaModel First Entity Framework 4.3.1 y C#Procedimientos Almacenados, Transacciones en Entity Framework 4.3.1 con C# y Visual Studio 11

Insignia Facebook

Jhonnys López Celedon

Crea tu insignia

BDotNet

BDotNet

BDotNet

MCS Colombia

Microsoft CommunitySpecialist

MCS Colombia

Temas que me interesan

Arquitectura (1)EntityFramework (11)WCF (3)

Mi Twitter

We build the thing wrong, or we build the wrong thing. By Steve Smith @ardalisEl: 8 months agoYo era un duro en esta guía en mis tiempos jajaja :( todos mejoramos An Idiots Guide to Really Really Bad Programmingcodeproject.com/Articles/55892…El: 8 months ago"Your code is so abstract it deserve being put in the Museum for Modern Art." LOL Cuando nos pasamos con las abstracciones@nicolocodevEl: 8 months ago

Page 2: Adaptando de Manera Sencilla Con AutoMapper Nuestros Data Transfer Objects (DTO) Entity Framework, WCF C#

15/10/2015 Adaptando de manera sencilla con AutoMapper nuestros Data Transfer Objects (DTO) Entity Framework, WCF C# | Jhonnys López DevNinja .…

file:///C:/Users/greg/Desktop/PLANTILLAS%20T4/Adaptando%20de%20manera%20sencilla%20con%20AutoMapper%20nuestros%20Data%20Transfer… 2/10

@nicolocodev :) felicitacionesEl: 1 year agoExcelente me gustaría mucho cuenten conmigo @nicolocodev @jorgegamba @ralvaradot @julitogtu @JuanKRuiz @ManquipEl:1 year ago@jramirezdev si claro nos vemos allá :)El: 1 year ago@jramirezdev jajajaja ya ahora sólo sober coding.El: 1 year agoRT @_PedroHurtado: Aposte por #nodejs #angularjs acerté y después me la jugué en producción con #metrouicss metroui.org.ua y ahora…El: 1 year ago@jramirezdev compadre ando de vacaciones en Valledupar echando ASM con OldParrEl: 1 year ago@Varo_Julio @BerttyJulio eso estaba apunto de escribir, que me tengas una así esperándome.El: 1 year ago

Mis Archivos

julio 2012 (1)May 2012 (3)abril 2012 (7)

Publicaciones Recientes

Adaptando de manera sencilla con AutoMapper nuestros Data Transfer Objects (DTO) Entity Framework, WCF C#WCF retornar un listado de entidades Entity Framework con C# y Visual Studio 11Servicios WCF con Entity Framework 4.3.1 C# y Visual Studio 11Partiendo de la Base de Datos SchemaModel First Entity Framework 4.3.1 y C#Procedimientos Almacenados, Transacciones en Entity Framework 4.3.1 con C# y Visual Studio 11Manejando Relaciones con Entity Framework 4.3.1 Code First Fluent API con C# y Visual Studio 11Manejando Relaciones con Entity Framework 4.3.1 Code First con C# y Visual Studio 11Fluent API Entity Framework 4.3.1 con C# y Visual Studio 11Cambiar Cadena de Conexión Entity Framework 4.3.1 con C# y Visual Studio 11Entity Framework 4.3.1 Data Annotations con C# y Visual Studio 11Introducción a Entity Framework 4.3.1 Code First con C# Visual Studio 11

Arquitectura C# Entity Framework WCF

Publicaiones Populares

Adaptando de manera sencilla con AutoMapper nuestros Data Transfer Objects (DTO) Entity Framework, WCF C#Procedimientos Almacenados, Transacciones en Entity Framework 4.3.1 con C# y Visual Studio 11WCF retornar un listado de entidades Entity Framework con C# y Visual Studio 11Servicios WCF con Entity Framework 4.3.1 C# y Visual Studio 11Partiendo de la Base de Datos SchemaModel First Entity Framework 4.3.1 y C#Manejando Relaciones con Entity Framework 4.3.1 Code First con C# y Visual Studio 11Manejando Relaciones con Entity Framework 4.3.1 Code First Fluent API con C# y Visual Studio 11Introducción a Entity Framework 4.3.1 Code First con C# Visual Studio 11Cambiar Cadena de Conexión Entity Framework 4.3.1 con C# y Visual Studio 11Fluent API Entity Framework 4.3.1 con C# y Visual Studio 11

Meta

RegistrarseAccederRSS de las entradasRSS de los comentariosWordPress.com

« WCF retornar un listado de entidades Entity Framework con C# y Visual Studio 11 |

Adaptando de manera sencilla con AutoMapper nuestros Data Transfer Objects (DTO) EntityFramework, WCF C# 16 Votes

Luego ya de una larga ausencia por motivos laborales por fin tengo tiempo disponible para compartir alguna de mis experiencias trabajando con .NET,continuando con mis últimas publicaciones que partieron de una introducción a Entity Framework 4.3.1 hasta llegar al punto de hablar un poco deservicios con WCF Windows Communitacion Foundation analizaremos algunos temas que debemos tener en cuenta y específicamente para éstapublicación la cuestión es: ¿voy a retornar o a enviar a través de mi servicio las entidades que he declarado en mi negocio? que en pocas palabras sería¿voy a exponer mi modelo de negocio a través de mi servicio? puede sonar algo de poca importancia en algunas situaciones pero cuando empezamos atrabajar con sistemas mucho más grandes se convierte en algo de importante consideración el enviar mis entidades tal cual como las he definido en elnegocio es prácticamente dar a conocer mi esquema de datos si uso un Entity Framework y estoy mapeando clase por tabla. La intención es tambiénsimplificar todo el subsistema que deseo exponer, es decir ofrecer una fachada o una interface más simple.

Veamos que técnicas podemos implementar para evitar todo esto.

Data Transfer Objects DTO: Es un objeto el cual transporta información a través de procesos en éste caso un WCF, en orden para reducir el númerode llamadas a métodos.

Page 3: Adaptando de Manera Sencilla Con AutoMapper Nuestros Data Transfer Objects (DTO) Entity Framework, WCF C#

15/10/2015 Adaptando de manera sencilla con AutoMapper nuestros Data Transfer Objects (DTO) Entity Framework, WCF C# | Jhonnys López DevNinja .…

file:///C:/Users/greg/Desktop/PLANTILLAS%20T4/Adaptando%20de%20manera%20sencilla%20con%20AutoMapper%20nuestros%20Data%20Transfer… 3/10

Un DTO nos ayuda también a simplificar de manera tal que por ejemplo una Factura que tiene referencias a un Cliente y uno o más DetalleFactura sepuede simplificar a un único objeto es decir en un FacturaDTO y así evitar enviar directamente la entidad factura a través del servicio y exponer en éstecaso nuestro modelo de datos y modelo de negocio.

Todo esto lo logramos escribiendo una nueva clase que contendrá todas las propiedades de nuestras entidades que deseamos exponer a través del WCF:

El la aplicación que he venido trabajando desde el inicio de la introducción a Entity Framework ya tengo un WCF para exponer algunos métodosveamos como hacer uso de los DTOs.

Supongamos que deseamos exponer un método para obtener el listado de cursos, pero puede que quien consumirá el método no necesite toda lainformación del curso como tal o que simplemente por algún motivo de integridad no entreguemos toda la entidad Curso como está, para ellocrearemos una nueva clase a la que llamaré CuroDTO que contendrá la información que deseo exponer.

Primero veamos como está definida la entidad Curso:

CursoDTO:

RequisitoDTO:

Pueden observar que sólo quiero exponer algunos datos del curso simplemente los necesarios, veamos ahora el servicio de que manera sería:

IServicioDevNinja:

12345678910111213141516171819

namespace DevNinja.EntityFramework.Negocio public class Curso public int CursoId get; set; public string Nombre get; set; public DateTime Inicia get; set; public string Duracion get; set; public DateTime Registrado get; set; public List Requisitos get; set; public List AsistenciasCurso get; set; public Curso() Requisitos = new List(); AsistenciasCurso = new List();

1234567891011121314151617181920212223242526272829

using System;using System.Collections.Generic; namespace DevNinja.EntityFramework.Servicios.DTOs [DataContract] public class CursoDTO public CursoDTO() Requisitos = new HashSet(); [DataMember] public ICollection Requisitos get; set; [DataMember] public int CursoId get; set; [DataMember] public string Nombre get; set; [DataMember] public DateTime Inicia get; set; [DataMember] public string Duracion get; set;

1234567891011

using System.Runtime.Serialization; namespace DevNinja.EntityFramework.Servicios.DTOs [DataContract] public class RequisitoDTO [DataMember] public string Nombre get; set;

Page 4: Adaptando de Manera Sencilla Con AutoMapper Nuestros Data Transfer Objects (DTO) Entity Framework, WCF C#

15/10/2015 Adaptando de manera sencilla con AutoMapper nuestros Data Transfer Objects (DTO) Entity Framework, WCF C# | Jhonnys López DevNinja .…

file:///C:/Users/greg/Desktop/PLANTILLAS%20T4/Adaptando%20de%20manera%20sencilla%20con%20AutoMapper%20nuestros%20Data%20Transfer… 4/10

ServicioDevNinja:

Pueden apreciar como el hacer uso de DTOs para algunos casos será algo muy largo de adaptar ya que nos tocaría crear los DTOs de manera manualsin embargo hemos logrado exponer sólo lo necesario a través de nuestro WCF: Aquí pueden ver el servicio en acción como retorna el listado deDTOs.

1234567891011

using System.Collections.Generic; namespace DevNinja.EntityFramework.Servicios [ServiceContract] public interface IServicioDevNinja [OperationContract] IEnumerable ObtenerCursos();

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061

using System.Collections.Generic;using System.Data.Entity;using System.Linq;using DevNinja.EntityFramework.Datos;using DevNinja.EntityFramework.Negocio;using DevNinja.EntityFramework.Servicios.DTOs; namespace DevNinja.EntityFramework.Servicios public class ServicioDevNinja : IServicioDevNinja private readonly DevNinjaContexto _contexto; public ServicioDevNinja() _contexto = new DevNinjaContexto(); Database.SetInitializer(null); #region IServicioDevNinja Members public IEnumerable ObtenerCursos() // Obtengo el listado de cursos incluyendo los requisitos. var cursos = _contexto .Cursos .Include(c => c.Requisitos) .ToList(); // Debo transformar los cursos en cursos DTO. IList cursosDto = new List(); // La transformación o el proceso de adaptar un Curso a un CursoDTO // puede ser algo muy tedioso segn la cantidad de propiedades que // deseamos exponer a traves del WCF. Manualmente. foreach (Curso curso in cursos) CursoDTO cursoDto = new CursoDTO CursoId = curso.CursoId, Duracion = curso.Duracion, Inicia = curso.Inicia, Nombre = curso.Nombre ; foreach (Requisito requisito in curso.Requisitos) cursoDto.Requisitos.Add(new RequisitoDTO Nombre = requisito.Nombre ); // Retornar los cursos DTO. return cursosDto; #endregion

Page 5: Adaptando de Manera Sencilla Con AutoMapper Nuestros Data Transfer Objects (DTO) Entity Framework, WCF C#

15/10/2015 Adaptando de manera sencilla con AutoMapper nuestros Data Transfer Objects (DTO) Entity Framework, WCF C# | Jhonnys López DevNinja .…

file:///C:/Users/greg/Desktop/PLANTILLAS%20T4/Adaptando%20de%20manera%20sencilla%20con%20AutoMapper%20nuestros%20Data%20Transfer… 5/10

1

Ahora hagamos el trabajo mucho más fácil mediante el uso de AutoMapper que en pocas palabras nos ayuda de manera muy sencilla a transformar orealizar el proceso de adaptar un objeto en otro ya que como han podido apreciar el convertir listado de cursos a un listado de DTOS de cursos puedeser algo tedioso. Primero voy a usar NuGet para instalar y referenciar AutoMapper en mi proyecto de Servicios:

2

Vista de AutoMapper referenciado:

Page 6: Adaptando de Manera Sencilla Con AutoMapper Nuestros Data Transfer Objects (DTO) Entity Framework, WCF C#

15/10/2015 Adaptando de manera sencilla con AutoMapper nuestros Data Transfer Objects (DTO) Entity Framework, WCF C# | Jhonnys López DevNinja .…

file:///C:/Users/greg/Desktop/PLANTILLAS%20T4/Adaptando%20de%20manera%20sencilla%20con%20AutoMapper%20nuestros%20Data%20Transfer… 6/10

3

Ahora sólo tengo que establecer de que manera se convierte un objeto a otro es decir especificar el mapa de los objetos que deseo convertir de maneratal que AutoMapper a partir de dicho mapa sea capaz de retornarme el objeto que deseo, para ello debo crear un perfil de mapas donde especificaré deque manera serán realizada las conversiones: Crearé una nueva clase que contendrá toda la información del mapeo, la clase heredará de Profile deAutoMapper:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162

63

using AutoMapper;using DevNinja.EntityFramework.Negocio; namespace DevNinja.EntityFramework.Servicios.DTOs public class DevNinjaPerfil : Profile public override string ProfileName get return "DevNinjaPerfil"; protected override void Configure() Mapear(); private void Mapear() // Para convertir de un Requisito a un RequisitoDTO, // se hara de la siguiente manera: Mapper.CreateMap<Requisito, RequisitoDTO>() // t: Entidad destino (RequisitoDTO). // f: Etindad origen (Requisito). // r: Entidad origen (Requisito). // La propiedad Nombre la entidad destino, // sera igual a la propiedad Nombre de la entidad Origen. .ForMember(t => t.Nombre, f => f.MapFrom(r => r.Nombre)) // La conversion sera tambien en doble via de RequisitoDTO a Requisito. .ReverseMap(); // Para convertir de un Curso a un CursoDTO se hara de la siguiente manera: Mapper.CreateMap<Curso, CursoDTO>() // t: Entidad destino (CursoDTO). // f: Etindad origen (Curso). // c: Entidad origen (Curso). // La propiedad CursoId la entidad destino, // sera igual a la propiedad CursoId de la entidad Origen // y asi con cada una de la propiedades. .ForMember(t => t.CursoId, f => f.MapFrom(c => c.CursoId)) .ForMember(t => t.Duracion, f => f.MapFrom(c => c.Duracion)) .ForMember(t => t.Inicia, f => f.MapFrom(c => c.Inicia)) .ForMember(t => t.Nombre, f => f.MapFrom(c => c.Nombre)) // CursoDTO tiene una coleccion de RequisitoDTO, // Curso tiene una coleccion de Requisito, pero // ya hemos especificado como se hace la conversion // de un Requisito a un RequisitoDTO por lo que podemos // especidicar esa conversion: .ForMember(t => t.Requisitos, f => f.MapFrom(c => c.Requisitos)) // Conversion en doble via. .ReverseMap();

Page 7: Adaptando de Manera Sencilla Con AutoMapper Nuestros Data Transfer Objects (DTO) Entity Framework, WCF C#

15/10/2015 Adaptando de manera sencilla con AutoMapper nuestros Data Transfer Objects (DTO) Entity Framework, WCF C# | Jhonnys López DevNinja .…

file:///C:/Users/greg/Desktop/PLANTILLAS%20T4/Adaptando%20de%20manera%20sencilla%20con%20AutoMapper%20nuestros%20Data%20Transfer… 7/10

AutoMapper es muy pero muy muy útil para éste tipo de conversiones además que expone un Fluent API como ya hemos visto que tambien tieneEntity Framework así que estaremos relacionados con el tema. Ahora sólo voy a establecer el perfil una vez se llame el servicio, y haré uso de estáexcelente herramienta:

Ahora tengo una herramienta que me ayuda a convertir mis entidades a DTOs y viceversa y así lo deseo.

Nuestra aplicación sigue funcionando de la misma manera y las conversiones entre objetos son muy sencillas.

Espero les sea de utilidad y nos leemos en una próxima publicación.

Comparte ésto:

Me gusta:

Relacionado

WCF retornar un listado de entidades Entity Framework con C# y Visual Studio 11En "EntityFramework"

Servicios WCF con Entity Framework 4.3.1 C# y Visual Studio 11En "EntityFramework"

Partiendo de la Base de Datos SchemaModel First Entity Framework 4.3.1 y C#En "EntityFramework"

Posted on 14 de julio de 2012 at 12:06 PM in Arquitectura, EntityFramework, WCF | RSS feed | Responder | Trackback URL

63

123456789101112131415161718192021222324252627282930313233343536373839404142434445

using System.Collections.Generic;using System.Data.Entity;using System.Linq;using AutoMapper;using DevNinja.EntityFramework.Datos;using DevNinja.EntityFramework.Negocio;using DevNinja.EntityFramework.Servicios.DTOs; namespace DevNinja.EntityFramework.Servicios public class ServicioDevNinja : IServicioDevNinja private readonly DevNinjaContexto _contexto; public ServicioDevNinja() _contexto = new DevNinjaContexto(); Database.SetInitializer(null); // Establecer el perfil con el que se haran las conversiones // en AutoMapper. Si si puedo tener mucho perfiles y reemplazarlos uno por otro. Mapper.Initialize(t => t.AddProfile()); #region IServicioDevNinja Members public IEnumerable ObtenerCursos() // Obtengo el listado de cursos incluyendo los requisitos. var cursos = _contexto .Cursos .Include(c => c.Requisitos) .ToList(); // He aqui la maravilla, puedo mapear de una lista a otra lista // y en el perfil de mapeo solo establecemos como hace la conversion // de un unico objecto. IEnumerable cursosDto = Mapper.Map<IEnumerable, IEnumerable>(cursos); return cursosDto; #endregion

Share 1

Page 8: Adaptando de Manera Sencilla Con AutoMapper Nuestros Data Transfer Objects (DTO) Entity Framework, WCF C#

15/10/2015 Adaptando de manera sencilla con AutoMapper nuestros Data Transfer Objects (DTO) Entity Framework, WCF C# | Jhonnys López DevNinja .…

file:///C:/Users/greg/Desktop/PLANTILLAS%20T4/Adaptando%20de%20manera%20sencilla%20con%20AutoMapper%20nuestros%20Data%20Transfer… 8/10

Etiquetas: Arquitectura, C#, Entity Framework, WCF

8 Responses to “Adaptando de manera sencilla con AutoMapper nuestros Data Transfer Objects (DTO) EntityFramework, WCF C#”

1. carlos 7 de agosto de 2012 en 1:25 PM 0 0 Rate This

que tal Jhonny bastante bueno tu tutorial, pero tengo una duda , siempre es necesario especificar que propiedad de origen con que propiedad dedestino se relacionan, es decir no estariamos haciendo el mismo trabajo que hacer el mapeo sin el automaper.o cual es la diferencia , en algunos blog veo que solo relacionan las clases de origen y destino y no asi las propiedades.estoy algo confundido en esta parte, porfavor si me la puedes aclarar.gracias de antemano.

Responder

jhonnys.lopez 7 de agosto de 2012 en 2:46 PM 1 0 Rate This

Hola Carlos, tienes razón no es necesario especificar la manera como se realiza el mapeo en algunos casos como el que expongo. La ideaes mostrar como se hace, pero hay casos donde si es totalmente necesario por ejemplo supongamos que tenemos una entidad en nuestronegocio llamada Cliente que tiene las propiedades Nombre y Apellido, también tenemos un DTO llamado ClienteDTO pero dicho DTOsolo tiene la propiedad Nombre es decir el nombre completo del cliente. Con Automapper podemos especificar que cuando se convierta deun Cliente a un ClienteDTO la propiedad Nombre del ClienteDTO será igual a la concatenación del Nombre y el Apellido del Cliente enese caso es necesario especificar como se realiza la conversión.

Mi ejemplo es para ilustrar de que manera se puede usar el FluentAPI de Automapper.

Gracias.

Responder

2. Fede 10 de agosto de 2012 en 5:51 PM 0 0 Rate This

Buen tutorial.En caso de querer una referencia en RequisitoDTO a CursoDTO, estoy teniendo problemas.Supongo que es por la referencia ciclica que se forma.

Existe una forma de hacerlo funcionar correctamente?

Muchas gracias.

using System.Runtime.Serialization;namespace DevNinja.EntityFramework.Servicios.DTOs[DataContract]public class RequisitoDTO[DataMember]public string Nombre get; set;

[DataMember]public CursoDTO Curso get; set;

Responder

3. carlos 17 de agosto de 2012 en 1:36 PM 0 0 Rate This

Que tal Jhonny. gracias por aclarar mis dudasy si es bastante valido los casos que tu mencionas, gracias de nuevo y muy bueno tu blog sigueadelante :)

Responder

Page 9: Adaptando de Manera Sencilla Con AutoMapper Nuestros Data Transfer Objects (DTO) Entity Framework, WCF C#

15/10/2015 Adaptando de manera sencilla con AutoMapper nuestros Data Transfer Objects (DTO) Entity Framework, WCF C# | Jhonnys López DevNinja .…

file:///C:/Users/greg/Desktop/PLANTILLAS%20T4/Adaptando%20de%20manera%20sencilla%20con%20AutoMapper%20nuestros%20Data%20Transfer… 9/10

4. Ivan 4 de noviembre de 2012 en 1:58 AM 0 0 Rate This

Buenas noches jhonny, una consulta, como puede obtener un resultado linq y guardarlo en una clase y su relación, es como que tenga una claseauto y pertenece a un tipo de auto(relacion uno a uno), cuando quiero mostrar en una lista el nombre del auto y su descripcion de tipo(no elcódigo de tipo). Ejm.Class Aatributo a1;atributo a2;atributo b1; //supongamos código de la clase Batributo B B; //para relacionar con la clase B

Class Batributo b1; //códigoatributo b2;

IEnumerable items;items = A.Join(B,a => a.b1,b => b.b1,(a, b) => new a, b);

//pero tengo problemas en la consulta con linq, ya que no reconoce la instancia de la clase B, la mayoría de los ejemplos utilizan “var” y lo quequiero es usar las clases que he creado y nada de “var”·. Gracias, cualquier ayuda será bienvenida.(ahora el ejemplo es una relación de uno a uno,pero también puede darme un ejemplo de uno a muchos.). Gracias.

Responder

jhonnys.lopez 16 de noviembre de 2012 en 10:31 PM 0 0 Rate This

Hola, no se si entendí bien tu duda, pero la cuestión es que al parecer estas retornando un tipo anónimo en tu consulta que consta de lasclases A y B, supongamos que lo que deseas es una clase que contenga todos las propiedades de la clase A + algunas propiedades de laclase B lo que tienes que hacer es:

1Ideal que tengas una tercera clase con las propiedades que deseas unir de A y B:

Class Ca1;a2;b1;b2;

2 – en la consulta Linq crea una nueva Class C:

var clasesC = from miA in Ajoin miBb in B on miA.b1 equals miB.b1select new Ca1=miA.a1,a2=miA.a2,b1=miB.b1,b2=miB.b2;

de ésta manera puede retornar una lista de C hacia otros métodos o capas en tu aplicación.

Responder

5. idmirsoft 16 de febrero de 2013 en 10:37 AM 0 0 Rate This

En el caso si quisieramos consultar datos de 2 base de datos como se aria el automapper.

Page 10: Adaptando de Manera Sencilla Con AutoMapper Nuestros Data Transfer Objects (DTO) Entity Framework, WCF C#

15/10/2015 Adaptando de manera sencilla con AutoMapper nuestros Data Transfer Objects (DTO) Entity Framework, WCF C# | Jhonnys López DevNinja .…

file:///C:/Users/greg/Desktop/PLANTILLAS%20T4/Adaptando%20de%20manera%20sencilla%20con%20AutoMapper%20nuestros%20Data%20Transfe… 10/10

Responder

Trackbacks

1. Agenda de la Comunidad « MSExpertos31 de julio de 2012 en 12:05 PM

¿Tienes alguna duda? ¿Deseas opinar sobre éste tema? Deja un comentario a continuación.

Introduce tu comentario aquí...

Etiquetas

Arquitectura C# Entity Framework WCF

Calendario

julio 2012L M X J V S D

« may

12 3 4 5 6 7 89 10 11 12 13 14 1516 17 18 19 20 21 2223 24 25 26 27 28 2930 31

Archivos

julio 2012May 2012abril 2012

Crea un blog o un sitio web gratuitos con WordPress.com. | El tema Under the Influence.Seguir

Seguir “Jhonnys López DevNinja .NET”

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 645 seguidores

Introduce tu dirección de correo electrónico

Suscríbeme

Construye un sitio web con WordPress.comA %d blogueros les gusta esto: