AutoMapper сглаживает модели доменов, но делает ли это наоборот? Если нет, то что?

Я читал об AutoMapper из-за ответа на один из моих предыдущих вопросов здесь.

Здесь сказано, что AutoMapper сглаживает сложные модели доменов, но мне нужно что-то, что делает обратное. Мне нужно связать мои модели представления (плоские модели предметной области) со сложными моделями предметной области, чтобы я мог быстро преобразовать модель представления в модель предметной области.

Есть ли что-нибудь похожее на AutoMapper, которое принимает представление? модель и превращает ее в сложную модель предметной области?


person Matt    schedule 24.07.2009    source источник
comment
вы можете сделать это с помощью ValueInjecter valueinjecter.codeplex.com   -  person Omu    schedule 10.06.2010


Ответы (3)


Не совсем, потому что для того, чтобы быть полезным, он должен быть чрезвычайно условным. При сглаживании легко различить шаблоны, но наоборот... слишком много пользовательской логики.

person Matt Hinze    schedule 01.08.2009
comment
не только это, но кажется, что двухстороннее сопоставление является сомнительной практикой: in-automapper/" rel="nofollow noreferrer">lostechies.com/jimmybogard/2009/09/18/. - person gabe; 18.01.2012

Вы делаете!. Вы создаете метод MapToModel, в котором вы выполняете правостороннее/левостороннее кодирование и синхронизируете их вместе.

public MyModel MapToModel(MyViewModelForm vmf)
{
  //new up MyModel model;
  model.foo = vmf.foo;

  return model;
}

Если бы приложения программировались сами по себе, чем бы мы зарабатывали на жизнь...?

person James Fleming    schedule 19.01.2010

это делает ValueInjecter, и его довольно легко использовать:

//flatenning
personDto.InjectFrom<FlatValueInjection>(person);

//unflattening
person.InjectFrom<UnflatValueInjection>(personDto);

и

//this is just mapping without flattening/unflattening
foo.InjectFrom(bar)
person Omu    schedule 10.06.2010