如何创建单个数据访问层来访问asp.net中的两个不同的数据源

时间:2012-01-03 15:13:38

标签: asp.net oledb data-access-layer

我有两个数据源,第一个使用OLEDB连接,其他使用SQL数据提供程序。

我总是创建一个DAL来封装数据访问逻辑,但这次它接缝我必须创建两个不同的DAL(OLDB和SQLProvider。

这是正确的方法还是我可以与单个DAL进行通信。请建议在从ASp.NET应用程序传递不同数据源时遵循的最佳方法是什么。

由于

1 个答案:

答案 0 :(得分:1)

如果您想访问两个不同的数据源,则需要将数据访问逻辑封装在单独的层中,

关键是要确保您的其他代码使用接口而不是实现来访问您的DAL。

例如:

    public interface IRepository
    {
        Person GetPersonById(Guid id);
    }

    public class OleRepository : IRepository
    {
        public Person GetPersonById(Guid id)
        {
            // Do some Ole specific stuff to return a person
        }
    }

    public class SqlRepository : IRepository
    {
        public Person GetPersonById(Guid id)
        {
            // Do some Sql Server specific stuff to return a person
        }
    }

在您的代码中,您将针对IRepository界面进行编程,并且您不会依赖于特定的实现。在运行时,您可以选择正确的Repository实现(例如使用Dependency Injection)。