Вы можете использовать библиотеку, такую как AutoMapper . Для имен свойств, которые одинаковы между a
и ItemViewModel
, он может выполнить сопоставление для вас с помощью отражения, для свойств с другими именами вы можете определить сопоставление вручную, а для свойств, поступающих из других объектов (b и c) Вы можете использовать помощника.
Примерно так:
var temp = from a in items
join b in stores on a.storeKey = b.storeKey into b2
from c in b2.DefaultIfEmpty()
select CreateModelFrom(a, b, c);
public ItemViewModel CreateModelFrom(ObjA a, ObjB b, ObjC c)
{
var model = Mapper.Map<ObjA, ItemViewModel>();
model.xxx = b.xxx;
model.storeInfo1 = c.storeInfo1;
return model;
}