我有两个数据源,第一个使用OLEDB连接,其他使用SQL数据提供程序。
我总是创建一个DAL来封装数据访问逻辑,但这次它接缝我必须创建两个不同的DAL(OLDB和SQLProvider。
这是正确的方法还是我可以与单个DAL进行通信。请建议在从ASp.NET应用程序传递不同数据源时遵循的最佳方法是什么。
由于
答案 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)。