DataModel与DataContract对比ViewModel

时间:2011-09-20 14:57:13

标签: wcf asp.net-mvc-3 entity-framework viewmodel datamodel

我将有一个将连接到WCF Web服务的asp.net MVC。该服务定义了数据库连接。

我注意到我将有3种不同的模型/数据类。

首先是来自MVC的ViewModel人。我想这可能与数据库中数据的表示方式有所不同。

第二个是DataModels,它定义了对象在数据库中的外观。

然后是DataContract人员,它定义了通过WCF服务传输的对象外观。猜猜它要么几乎是ViewModel或DataModel的表示。

这是一种过度杀伤还是必要的邪恶?我应该将DataContracts定义为ViewModel人员,甚至是DataModel。

你会怎么做?你会如何将它拆分成集会?

2 个答案:

答案 0 :(得分:1)

我会像你提到的那样将它们分开。它们每个都有一个不同的层来处理(即属于)和应该是单独的对象来处理任何未来的变化。

wcf项目将通过引用服务来创建,因此属于您的wcf服务。您的数据模型应该在模型项目或数据访问项目中以及您的MVC应用程序中的ViewModel,尽管如果您愿意,可以从那里打破,但由于它与MVC应用程序相当紧密耦合,因此值得商榷。

答案 1 :(得分:1)

  

我是否应该将DataContracts定义为ViewModel人员,

当然不是。 ViewModels是面向屏幕(用例)的 但是您可以在SilverLight或jQuery客户端使用的DataService中执行此操作。

  

甚至是DataModels。

这可能有意义。 POCO的原因之一是它们甚至可以是同一类。