См. http://www.gnu.org/software/emacs/windows/ntemacs.html . Раздел 2.1 описывает, где получить его и разделить 3.5, описывает, куда .emacs файл идет (по умолчанию, в Вашем корневом каталоге, как определено переменной Домашней среды).
Для простых объектов вы можете просто использовать Linq:
IList<BallViewModel> _balls = _ballsService.GetBalls(searchCriteria)
.Select(b => new BallsViewModel
{
ID = b.ID,
Name = b.Name,
// etc
})
.ToList();
Это может стать довольно повторяющимся, поэтому вы можете дать своему классу BallViewModel конструктор, который принимает Ball и выполняет всю работу за вас. .
Другой подход - использовать библиотеку наподобие AutoMapper для копирования свойств (даже вложенных) из объекта домена в модель представления.
Возможно немного Linq, что-то вроде
var ballQuery = from ball in _ballsService.GetBalls(searchCriteria)
select new BallViewModels
{
Diameter = ball.Diameter,
color = ball.Color,
...
}
IList<BallViewModels> _balls = ballQuery.ToList();
Либо это, либо вопрос сложнее, чем я думаю ...
Я использую AutoMapper , чтобы делать это все время. Он действительно гибкий и до сих пор работал у меня без каких-либо проблем.
Сначала вы настраиваете карту, как при инициализации вашего приложения:
Mapper.CreateMapping<Balls, BallViewModel>();
И всякий раз, когда вам нужно сопоставить объекты, вы должны делать это:
Mapper.Map<IList<Balls>, IList<BallViewModel>>(_ballsService.GetBalls());
Как Я сказал, что он очень гибкий, и вы можете изменить способ сопоставления для каждого свойства, используя свободный API.