2010-11-05 47 views
0

如果我们正确使用automapper,并且我们的架构是有效的,那么我有一点道德上的两难困境。我是一个相对较新的开发者,但这只是我感觉不对。我的同事是automapper的忠实粉丝(可以理解,所以它很摇滚),但我的问题是,我们仅仅是为了它而使用它,并试图在一个模式中敲喇叭只是因为“这是如何完成的”。基本上我们正在构建一个内部应用程序的网络扩展,它有一个api和一个讨厌的Sql数据库。我们创建了许多sql视图来提取每个屏幕所需的数据。然后使用linq2sql和一个存储库模式调用视图,然后将数据传递到服务层,该服务层自动生成数据,就像生成Viewmodel对象以传递给视图一样。我的问题是,我们真的需要autmapper吗?当然我们的数据已经处于我们可以查看的阶段..另外一个参数是让我们使用视图模型元数据进行控制,但肯定可以通过linq2sql上的好友类来完成实体?需要关于AutoMapper的使用说明

我是否错过了一些东西,或者这看起来并不复杂吗?此外,我一直在寻找使用teleriks控件的网格,但与automapper站在我的数据和输出之间我不确定要处理这个?

感谢您的任何输入;)

+0

什么是用户界面?你在网页上显示结果吗?通过WCF拍摄?这些模型是否有额外的逻辑,不能被绑定到sql生成的对象的linq中? – Will 2010-11-05 15:50:41

+0

我们在一个MVC应用程序中展示了大量的部分等等。当时模型没有太多编辑模型可能具有的任何逻辑,但这些仅用于视图屏幕。该逻辑被放置在sql视图中。 – 2010-11-05 15:57:27

回答

1

我已经建立了一个中等规模的ASP.NET MVC Web应用程序,听起来像它的结构非常相似,你的描述。我们发现将我们的LINQ to SQL对象作为视图模型直接暴露给我们的视图,这在项目中造成了很大的摩擦,因为我们的许多视图要么合成了多个LINQ to SQL对象,要么仅仅依赖于LINQ to SQL对象数据的一个子集。

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

+0

很高兴听到这个消息,你是怎么用automapper处理大量数据/分页等的?这是我最大的问题。 – 2010-11-05 16:10:28

+1

我们实际上已经将页面索引和页面大小传递到了我们可以使用Skip()的数据层,并使用IQueryable上的()来检索分页结果。 – 2010-11-05 17:32:49