2012-05-31 2 views
4

У меня есть веб-приложение и консольное приложение, обращающееся к db. В db есть две таблицы (A, B), одна из которых (A) специфична для веб-приложения. При написании уровня доступа к данным, какой способ это сделать? Технически уровень доступа к данным должен обеспечивать доступ ко всем доступным данным. При этом методы взаимодействия с A подвергаются консольному приложению, если у нас есть один уровень доступа. Имеет ли смысл создавать 2 слоя доступа к 2 таблицам в одной и той же базе данных? Что это хороший способ сделать это?Дизайн уровня доступа к данным

ответ

1

У меня был бы индивидуальный уровень доступа к данным в классе и 1 (или столько же промежуточных классов), чтобы удерживать бизнес-объекты, которые будут говорить/заполняться уровнем доступа к данным. Затем консоль и веб-приложение взаимодействуют с уровнем бизнес-объекта.

Например:

Data Layer Access

Держит Вся информация связь в отношении базы данных, методы выполнения хранимых процедур, функций и запросов. Этот класс будет говорить с Table A and Table B

консоли 1 Entities

Это будет держать методы/свойства, которые используют экземпляр слоя доступа к данным для получения соответствующей информации. То есть

public List<string> GetTableAContents() { 
    var retVal = Data.RunStoredProcedure("sp_Table1Contents); 
    return retVal; 
} 

Console Application

Console1Entity ce = new ConsoleEntity(); 
var contents = ce.GetTableAContents(); 

Вы бы затем создать новый класс WebApplication объектов на основе того, что имеет отношение к этому приложению. Это обеспечило бы трехуровневую архитектуру.

Смежные вопросы