gpt4 book ai didi

asp.net-mvc - 我应该使用可选的构造函数将域对象映射到 View 模型吗?

转载 作者:行者123 更新时间:2023-12-04 13:35:21 24 4
gpt4 key购买 nike

我希望能够通过更新 View 模型并将贡献的域模型作为参数传递(例如下面的代码),将域模型映射到 View 模型。我的动机是避免重用映射代码,并提供一种简单的映射方法(尚未使用自动映射器)。一位 friend 说, View 模型应该对传递到可选构造函数中的“支付”域模型一无所知。你怎么看?

public class LineItemsViewModel
{
public LineItemsViewModel()
{
}

public LineItemsViewModel(IPayment payment)
{
LineItemColumnHeaders = payment.MerchantContext.Profile.UiPreferences.LineItemColumnHeaders;
LineItems = LineItemDomainToViewModelMapper.MapToViewModel(payment.LineItems);
ConvenienceFeeAmount = payment.ConvenienceFee.Fee;
SubTotal = payment.PaymentAmount;
Total = payment.PaymentAmount + payment.ConvenienceFee.Fee;
}

public IEnumerable<Dictionary<int, string>> LineItems { get; set; }
public Dictionary<int, string> LineItemColumnHeaders { get; set; }
public decimal SubTotal { get; set; }
public decimal ConvenienceFeeAmount { get; set; }
public decimal Total { get; set; }
}

最佳答案

你的 friend 是对的。 View 应该是愚蠢的,并且对您的域模型一无所知。

您是否尝试过使用Automapper将业务/域实体/模型映射到dto/viewmodels?

由于评论而导致的更多详细信息:

将映射代码放入 View 模型违反了关注点分离,SOLID单职责主体,MVC模式和域驱动设计主体。 View 负有一个责任,将数据获取到屏幕上,仅此而已。恕我直言,没有什么可争论的。这是一个坏主意,违反了许多核心软件开发原则。

关于asp.net-mvc - 我应该使用可选的构造函数将域对象映射到 View 模型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2859618/

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