我将有一个将连接到WCF Web服务的asp.net MVC。该服务定义了数据库连接。
我注意到我将有3种不同的模型/数据类。
首先是来自MVC的ViewModel人。我想这可能与数据库中数据的表示方式有所不同。
第二个是DataModels,它定义了对象在数据库中的外观。
然后是DataContract人员,它定义了通过WCF服务传输的对象外观。猜猜它要么几乎是ViewModel或DataModel的表示。
这是一种过度杀伤还是必要的邪恶?我应该将DataContracts定义为ViewModel人员,甚至是DataModel。
你会怎么做?你会如何将它拆分成集会?
答案 0 :(得分:1)
我会像你提到的那样将它们分开。它们每个都有一个不同的层来处理(即属于)和应该是单独的对象来处理任何未来的变化。
wcf项目将通过引用服务来创建,因此属于您的wcf服务。您的数据模型应该在模型项目或数据访问项目中以及您的MVC应用程序中的ViewModel,尽管如果您愿意,可以从那里打破,但由于它与MVC应用程序相当紧密耦合,因此值得商榷。
答案 1 :(得分:1)
我是否应该将DataContracts定义为ViewModel人员,
当然不是。 ViewModels是面向屏幕(用例)的 但是您可以在SilverLight或jQuery客户端使用的DataService中执行此操作。
甚至是DataModels。
这可能有意义。 POCO的原因之一是它们甚至可以是同一类。