我刚开始一个新项目,目前包含一些ViewModel DTO课程。
我想知道用元组替换许多这些DTO是否有用甚至是好的做法,并将其作为我将一堆对象转移到我的视图的方法。
你怎么看?这是元组的正确用法还是我的标记?答案 0 :(得分:2)
通常,视图模型具有与之关联的元数据,这些元数据允许您执行验证并与编辑器/显示模板集成。元组似乎不合适。另一个缺点是它们不太清楚地表达了视图模型中每个属性的目的(Model.Item1
,Model.Item2
,...,除了原始开发人员之外没有其他人可以理解这一点,并且如果他在几天之后就像我一样,他甚至无法理解。)
答案 1 :(得分:1)
我在使用元组时遇到的一个问题是,在您看来:
inherits="ViewPage<Tuple<Model1, Model2>>"
...等,当您使用这些模型时,您必须以下列方式访问它们:
Model.Item1,
Model.Item2
...这不像使用一个好的强类型视图模型那么清晰。
答案 2 :(得分:0)
在C#7中,您现在可以命名项目 - 下面的代码几乎是一个免费的映射器,我认为可以替换不需要附加任何行为的DTO。
public (string first, string last, int age) GetTuple()
{
return ("John", "Connor", 1);
}