【问题标题】:Need clarification on AutoMapper usage需要澄清 AutoMapper 的使用
【发布时间】:2010-11-05 15:45:19
【问题描述】:

我有点道德上的困境,如果我们使用 automapper 的方式是否正确,以及我们的架构是否有效。我是一个相对较新的开发人员,但这对我来说感觉不对。我的同事是 automapper 的忠实拥护者(可以理解,所以它会摇摆不定),但我的问题是我们只是为了它而使用它,并试图以某种模式进行鞋拔,只是因为“这就是它的完成方式”。基本上,我们正在为具有 api 和讨厌的 Sql 数据库的内部应用程序构建 Web 扩展。我们创建了许多 sql 视图来提取每个屏幕所需的数据。然后使用 linq2sql 和存储库模式调用视图,然后将数据传递到服务层,该服务层自动映射数据,就像生成 Viewmodel 对象以传递给视图一样。我的问题是,我们是否真的需要 autmapper,我们的数据是否已经处于可以查看的阶段。还有一个论点是让我们使用视图模型元数据进行控制,但这肯定可以通过 linq2sql 上的伙伴类来完成实体?

我是否遗漏了什么或者这似乎是不必要的复杂?此外,我一直在寻找对网格使用 Teleriks 控件,但自动映射器位于我的数据和输出之间,我不确定如何处理这个问题?

感谢您的任何意见;)

【问题讨论】:

  • 用户界面是什么样的?您是否在网页中显示结果?跨 WCF 拍摄?模型是否有额外的逻辑不能塞进 linq to sql 生成的对象?
  • 我们在一个 MVC 应用程序中显示有很多部分等。目前,如果编辑模型可能有任何逻辑,模型没有太多,但这些只是用于视图屏幕。逻辑被放置在 sql 视图中。

标签: c# linq-to-sql design-patterns viewmodel automapper


【解决方案1】:

我已经构建了一个中等大小的 ASP.NET MVC Web 应用程序,听起来它的架构与您描述的非常相似。我们发现,将我们的 LINQ to SQL 对象直接作为视图模型公开给我们的视图在项目中产生了很多摩擦,因为我们的许多视图要么组合了多个 LINQ to SQL 对象,要么仅依赖于 LINQ to SQL 对象数据的子集.

在项目后期,我们开始使用 AutoMapper 将 LINQ 映射到 SQL 对象以查看模型(并返回),这无疑使我们的系统更加灵活。所以我会推荐它。

【讨论】:

  • 很高兴听到这个消息,您是如何使用自动映射器处理大量数据/分页等的?这是我目前最大的问题。
  • 我们实际上将页面索引和页面大小一直向下传递到数据层,在那里我们可以在 IQueryable 上使用 Skip().Take() 来检索分页结果。
猜你喜欢
  • 2011-11-09
  • 2012-07-18
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
  • 2015-07-26
  • 1970-01-01
  • 2012-06-02
  • 2017-01-18
相关资源
最近更新 更多