gpt4 book ai didi

c# - 我应该在哪里放置我的域模型以查看模型映射代码?

转载 作者:可可西里 更新时间:2023-11-01 08:55:41 24 4
gpt4 key购买 nike

目前我在我的 Controller 文件中使用私有(private)静态方法将域模型映射到 View 模型,反之亦然。如下所示:

public ActionResult Details(int personID)
{
Person personDM = service.Get(personID);
PersonViewModel personVM = MapDmToVm(personDM);
return View(personVM);
}

private static PersonViewModel MapDmToVm(Person dm)
{
PersonViewModel vm;
// Map to VM
return vm;
}

还有其他标准方法可以做到这一点吗?

最佳答案

我更喜欢将映射逻辑放在 View 模型 (dto) 类中,因为我们希望保持领域模型尽可能干净,而且领域模型可能会随着时间的推移而改变。

public class Person
{
public string Name {get; set;}
}

public class PersonViewModel
{
public string Text {get; set;}

public static implicit operator PersonViewModel(Person dm)
{
var vm = new PersonViewModel { Text = dm.Name };
return vm;
}

public static implicit operator Person(PersonViewModel vm)
{
var dm = new Person { Name = vm.Text };
return dm;
}
}

并在 Controller 中使用它而无需显式转换。

Person dm = service.Get(id);
PersonViewModel vm = dm;

关于c# - 我应该在哪里放置我的域模型以查看模型映射代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24134813/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com