【发布时间】:2014-10-01 16:46:51
【问题描述】:
我想构建一个针对任何多个数据库(即 SQL Server、Oracle、DB2 等)的通用数据访问层,棘手的部分是我还需要支持 Web 服务,因此我的数据源也可以是 Web 服务。每个数据源都有相似的数据,但列名不同,Web 服务中的返回类型也不同。
我如何创建一个通用数据访问层来定位任何数据源并将通用对象/列表返回到 .NET、C# 中的 UI。
.NET 4.5、C#、Web API、VS 2013 是我正在使用的。
请提出建议。非常感谢任何帮助。
干杯
【问题讨论】:
-
这个数据访问层会做什么?
-
据我了解您的问题,此 DAL 将(通用)数据返回到业务对象并最终返回到 UI。
-
我不确定如何将这个数据访问层声明为除了接口之外的任何东西。你有非常不同的底层实现,而且你似乎不需要任何特定的逻辑,那么还剩下什么?
-
好吧,我想我已经把你弄糊涂了,所以让我在这里澄清一下。例如,如果我有 3 个不同的数据源,即 SQL Server、Oracle 和 Web 服务。 SQL Server/Oracle 有一个表 Employee 表,但列名不同,Web 服务以自己的特定格式返回数据,即具有不同的属性。现在,我希望创建的 DAL 应该接受 SQL/Oracle 的自定义查询,并在 Web 服务的情况下调用特定的端点,并在通用类 EmployeeData/IList
中获取数据,我将在我的 UI 中声明和使用它。 -
我明白了,但问题是什么?您不能编写一个类来同时提供来自 SQL Server 和 Oracle 的数据以及 Web 服务,这样就规定了不同的底层类,这就是为什么在我看来,您剩下的就是如何声明该接口。那么这里的问题是什么?
标签: c# .net database asp.net-web-api architecture