У меня есть модель для моего стола ВЛАДЕЛЬЦАПреобразовать модель в ViewModel
namespace MyApp.Models
{
public partial class Owner
{
public int owner_id { get; set; }
public string firstname { get; set; }
public string lastname { get; set; }
public string address { get; set; }
public string city { get; set; }
public virtual User User { get; set; }
}
}
, а затем у меня есть мой ViewModel
public partial class OwnerData
{
public string firstname { get; set; }
public string lastname { get; set; }
public string address { get; set; }
}
Мой контроллер
public ActionResult Index()
{
//Create the object Owner based on the User Identity
Owner owner = CustomDbFunctions.GetUserEntity(User, db).Owner;
//New instance of the ViewModel
OwnerData ownerData = new OwnerData();
ownerData.lastname = owner.lastname;
ownerData.firstname = owner.firstname;
ownerData.address = owner.address;
return View(ownerData);
}
Там более простой способ чтобы преобразовать мой owner
в ownerData
без переписать evry одно свойство моего объекта?
есть способ, но это не просто для уверенности. Keep this way –
Есть инструменты, которые используют «Отражение» и делают это для вас, сопоставляя имена свойств. Я бы сохранил этот путь до сих пор, но добавил бы конструктор в OwnerData, который принимает объект Owner и делает это. –
@A Khudairy Я думаю, что нашел хорошее решение, используя ** Automapper **, сделав ** Mapper.CreateMap(); ** и затем ** OwnerData ownerData = Mapper.Map (CustomDbFunctions.GetUserEntity (User, db) .Owner); ** –
Sefira