使用存储库模式

时间:2015-07-29 15:28:52

标签: c# web-services oop design-patterns

我即将启动一个项目,该项目需要一个连接到Web服务的网站。 Web服务将从数据库中检索数据,并将其返回到网站。

我的问题是如何正确地将业务问题与数据访问分开。

可以使用存储库模式分离服务。然后在服务调用实现中,我可以以实体的形式从存储库中获取所需的数据,然后通过线路返回。

同样,我也可以在网站上做同样的事情。使用存储库隐藏从服务获取数据并将其序列化为一个或多个实体的实现细节。

但是,我使用这种方法的主要问题是服务和网站都有其实体的定义。是否有我可以使用的模式允许我一次定义这些实体,或者这种架构是否与普通/最佳实践相悖。

我应该提到我使用的技术是带有c#的asp.net,而且我没有使用实体框架。

1 个答案:

答案 0 :(得分:1)

在完全相同的解决方案中为它创建WCF数据服务和客户端。 Visual Studio将允许在客户端使用与您在服务端定义的完全相同的类和模型。

奖励:如果您使用的概念正确,IQueryable可以编组到客户端(而不是结果),因此您甚至可以在客户端进行即席查询,(假设您的存储库方法返回IQueryable)只是结果将在电线中传播。这对于分页场景也很重要。

开始阅读here