Представьте себе следующий код:
return from a in DBContext.Acts
join artist in DBContext.Artists
on a.ArtistID equals artist.ID into art
from artist in art.DefaultIfEmpty()
select new Shared.DO.Act {
ID = a.ID,
Name = a.Name,
Artist = new Shared.DO.Artist {
ID = artist.ID,
Name = artist.Name
},
GigId = a.GigID
};
Как видите, созданный linqtosql объект действия адаптирован в объект Shared.DO.Act. В рамках этого объект Artist сгенерированный linqtosql адаптируется в Shared.DO.Artist
В другом месте моей кодовой базы я могу запросить исполнителя (см. Ниже):
return from a in DBContext.Artists
select new Shared.DO.Artist {
ID = artist.ID,
Name = artist.Name
},
GigId = a.GigID
};
Это означает, что код доступа для артиста теперь появляется в двух местах! Один раз при получении художника, а также при загрузке акта
Как мне централизовать этот код адаптации?