LINQ to Objects Соедините две коллекции, чтобы установить значения в первой коллекции

У меня есть следующий запрос Entity Framework:

var results = from r in db.Results
              select r;

Я использую AutoMapper для сопоставления с другим типом:

var mapped = Mapper.Map<IEnumerable<Database.Result>, IEnumerable<Objects.Result>>(results);

В моем типе Objects.Result у меня есть свойство, называемое причиной, которое не поступает из базы данных. Он исходит из другого источника, который мне нужно в основном заполнить обратно в мой сопоставленный тип:

var reasons = new List<Reason>
{
    new Reason { Id = 1, Reason = "asdf..." }
};

Мне нужно объединить причины с моей сопоставленной коллекцией и установить свойство Reason в моей сопоставленной коллекции, используя значение из моей коллекции причин. Возможно ли это?

 // need something like this:
 mapped = from m in mapped
          join r in reasons on m.Id equals r.Id
          update m.Reason = r.Reason
          select m;

Очевидно, что приведенный выше код не компилируется, но есть ли код, который я могу написать и который делает то, что я хочу?

21
задан Dismissile 14 November 2011 в 20:10
поделиться