Как преобразовать коллекцию EntityCollection <T>в список <POCOObj> - PullRequest
5 голосов
/ 13 марта 2010

У меня есть Entity Framework Entities Events, которые имеют EntityCollection RSVP. Я хочу преобразовать EntityCollection RSVP в общий список <> класса POCO RSVP.

Итак, я хочу EntityCollection -> List.

Как лучше всего добиться этого?

Пока у меня есть это (отсутствует часть RSVP)

var events = from e in _entities.Event.Include("RSVP")
                     select new BizObjects.Event
                     {
                         EventId = e.EventId,
                         Name = e.Name,
                         Location = e.Location,
                         Organizer = e.Organizer,
                         StartDate = e.StartDate,
                         EndDate = e.EndDate,
                         Description = e.Description,
                         CreatedBy = e.CreatedBy,
                         CreatedOn = e.CreatedOn,
                         ModifiedBy = e.ModifiedBy,
                         ModifiedOn = e.ModifiedOn,
                         RSVPs = ???
                     };

Спасибо.

Ответы [ 2 ]

1 голос
/ 13 марта 2010

Я предлагаю вам вставить код "select" в метод расширения с именем что-то вроде "ToPoco (это событие события)" (вы будете использовать его для преобразования одного события).

Вы также должны реализовать другой метод расширения для множественного преобразования «Событие», например расширение List<BizObjects.Event> ToPoco(this List<Event> events), которое просто вызывает BizObjects.Event Poco(this Event event) в цикле.

После этого ваш запрос будет выглядеть так:

var events = (from e in _entities.Event.Include("RSVP")).ToList().ToPoco();

О RSVP:

Обычно вы просто создаете другой метод расширения для преобразования RSVP, например

List<BizObjects.RSVP> ToPoco(this List<RSVP> RSVPs)

Затем вы можете позвонить RSVPs = e.RSVPs.ToList().ToPoco()


Решение для прямого подгонки кода также может быть примерно таким:

RSVPs = e.RSVPs.Select(rsvp => new RSVP  { //do mapping })
0 голосов
/ 15 марта 2010
    var events = from e in _entities.Event.Include("RSVP")
                 select new BizObjects.Event
                 {
                     EventId = e.EventId,
                     Name = e.Name,
                     Location = e.Location,
                     Organizer = e.Organizer,
                     StartDate = e.StartDate,
                     EndDate = e.EndDate,
                     Description = e.Description,
                     CreatedBy = e.CreatedBy,
                     CreatedOn = e.CreatedOn,
                     ModifiedBy = e.ModifiedBy,
                     ModifiedOn = e.ModifiedOn,
                     RSVPs = from r in e.RSVP
                             select new BizObjects.RSVP
                             {
                                 RSVPId = RSVPId,
                                 // etc.
                             }
                 };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...