gpt4 book ai didi

c# - 映射器vs构造函数

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

我正在使用AutoMapper设置的项目。由于大多数情况对我来说都是陌生的,因此我对原因保持开放的态度。

假设我有两个类:

class Foo
{
public string name { get; set; }
public int rank { get; set; }
public bool isDelected { get; set; }
}

class FooView
{
public string name { get; set; }
public int rank { get; set; }
}

而不是使用ORM,为什么我不只是使用将FooView作为参数的构造函数。
class Foo
{
public Foo(FooView source)
{
this.name = source.name;
this.rank = source.rank;
}
}

在这种情况下,每当我有FooView并且需要Foo时,我只是说
var myFoo = new Foo(FooView);

它为我提供了我在一个位置所需的所有逻辑,并且我可以在任何地方使用它。如果我需要更新代码,则将其与Model定义放在同一位置。那我想念什么呢?

最佳答案

如果所有模型都在同一装配中或直接依赖于其他项目,则可能会很好。如果您的模型可以很好地对齐,则AutoMapper非常有用,但是如果您需要对映射进行更多控制,我倾向于将它们放在静态映射方法中的专用帮助器中或MVC Controller 中。

这有助于使我的映射逻辑与模型分离

private static Foo MapToFoo(FooView vm) 
{
var foo = new Foo();
foo.Name = vm.Name;
foo.Rank = vm.Rank;
...
return foo;
}

关于c# - 映射器vs构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38210181/

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