Как создать единый уровень доступа к данным для доступа к двум различным источникам данных в asp.net - PullRequest
0 голосов
/ 03 января 2012

У меня есть два источника данных, первый использует OLEDB для подключения, а другой использует SQL Data Provider.

Я всегда создаю DAL для инкапсуляции логики доступа к данным, но на этот раз мне нужно создать дваразные DAL (OLDB и SQLProvider.

. Будет ли это правильный подход, или я могу общаться с одним DAL. Пожалуйста, предложите, какой подход лучше использовать при передаче данных из другого источника данных из приложения ASp.NET.

Спасибо

1 Ответ

1 голос
/ 03 января 2012

Вы правы, что вам нужно инкапсулировать логику доступа к данным в отдельный слой, если вы хотите получить доступ к двум разным источникам данных,

Ключ должен убедиться, что ваш другой код использует интерфейс, а не реализацию, для доступа к вашему 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 (например, с Внедрение зависимости ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...