2012-02-19 6 views
0

выше - это код, который я использую для управления данными из моего домена в модель dto, которые я использую для сериализации wcf. Мой вопрос заключается в том, как передать объект матери с коллекцией детей в MotherDTO. При текущей ситуации кода я передаю только данные без детей коллекции. Нужно ли использовать сессию в строке и добавить сеанс MotherDTO dto = new MotherDTO (данные, сеанс); и использовать этот сеанс для восстановления коллекции дочерних элементов в dto. Если да, то как? Пожалуйста помоги.Передача объекта с коллекцией из домена в modelDTO с nhibernate

С уважением,

public MotherDTO GetMotherData() 
    { 
     using (ISession session = instance.OpenSession()) 
     { 
      using (ITransaction tx = session.BeginTransaction()) 
      { 
       Mother data = session.Query<Mother>() 
        .Fetch(x => x.Childrens) 
        .FirstOrDefault(); 
       tx.Commit(); 

       MotherDTO dto = new MotherDTO(data); 
       return dto; 
      } 
     } 
    } 

MotherDTO.cs

 public MotherDTO(Mother x) 
     { 
      Name = x.Name; 
      List<Children>Childrens= new List<Children>(); 
      foreach (Children obj in x.Childrens) 
      { 
       States.Add(obj); 
      } 
     } 

Mother.cs

public virtual string Name 
     { 
      get { return _Name; } 
      set 
      { 
       _Name = value; 
      } 
     } 


     public virtual Iesi.Collections.Generic.ISet<Children> Childrens 
     { 
      get 
      { 
       return _Childrens; 
      } 
      set 
      { 
       if (_Childrens == value) 
        return; 
       _Childrens = value; 
      } 
     } 
+0

Любой .......? – user1084557

ответ

0

Поскольку вы уже (готов) при загрузке вашей коллекции у вас детей может использовать Automapper для заполнения ваших DTO.
Если вы хотите знать, как настроить Automapper работать с вложенной коллекции вы можете прочитать here:

Mapper.CreateMap<Order, OrderDto>() 
    .ForMember(dest => dest.OrderLineDtos, opt => opt.MapFrom(src => src.OrderLines)); 
Mapper.CreateMap<OrderLine, OrderLineDto>() 
    .ForMember(dest => dest.ParentOrderDto, opt => opt.MapFrom(src => src.ParentOrder)); 
Mapper.AssertConfigurationIsValid();