У меня есть объект linq to sql, который имеет некоторые ссылки на некоторые другие таблицы
Я пытаюсь сопоставить его с виртуальной машиной, но ничто никогда не получает захваты.
Mapper.CreateMap<A, G>();
// A is the linq to sql object
A.MyList // this is a collection that I am trying to get the value out of A.MyList.Id
// G is my View Model
public class G
{
public string AMyListId {get; set;}
}
vm = Mapper.Map<List<A>, List<G>>(aListOfAFromDb);
Это всегдавозвращается с нуля.Я подумал, что мне придется сделать это вручную, поэтому я попытался
Mapper.CreateMap<A, G>().ForMember(dest => dest.AMyList , opt => opt.MapFrom(src =>????))
;
, но, так как я получаю его из списка, он не дает никаких свойств для выбора.
Редактировать
Я понял, что у меня не должно быть списка «MyList», это должен быть один к одному.У меня все еще возникают проблемы при попытке сделать то, что я хочу.
У меня есть это
Mapper.CreateMap ();
A.Vip.UserId // again my linq object is A
// G is my View Model
public class G
{
public string IsVip {get; set;}
}
vm = Mapper.Map<List<A>, List<G>>(aListOfAFromDb);
Mapper.CreateMap<A, G>().ForMember(dest => dest.IsVip, opt => opt.AddFormatter<VipFormatter>());
public class VipFormatter : IValueFormatter
{
public string FormatValue(ResolutionContext context)
{
bool value = (bool)context.SourceValue;
if (value)
{
return "Yes";
}
return "No";
}
}
, но ничто не связывает каждого.Я не уверен почему.Должен ли я изменить свое свойство на «AVipUserId»?Или как-то сказать это на карту?