Чтобы следовать намеченной модели. Уровень доступа к данным (DAL) отвечает за извлечение и отправку данных из и в источник данных.
DAL не должен заботиться о каких-либо бизнес-объектах, которые использует ваш BLL, поскольку его единственная задача - извлекать данные и возвращать их в нейтральном объекте. Он должен быть нейтральным для универсального повторного использования, иначе вы можете не разделять слои, так как вы определяете его назначение.
Ваш бизнес-логический уровень (BLL) не должен заботиться о том, как DAL достигает извлечения или записи данных.
Для связи между BLL и DAL вы должны использовать нейтральные объекты.
Ваш BLL передает свойства объекта в виде отдельных параметров в методы DAL.
параметры в DAL являются нейтральными, используя строки, int, bool, любые другие объекты .NET, которые не относятся ни к конкретной версии базы данных, с которой вы общаетесь, ни к конкретным типам, существующим только в вашем BLL.
DAL будет извлекать данные из любой точки мира и возвращать вызывающему объекту нейтральные данные. Например, это может быть DataSet или DataTable или любой другой объект, НЕ специфичный для типа / версии базы данных, которую вы используете. Следовательно, DataSet и DataTable являются объектами в пространстве имен System.Data, а не в пространстве имен System.Data.SQL и т. Д.
По сути:
- BLL передает нейтральные типы в DAL (например, string, int, bool, long, float и т. Д.)
- DAL отвечает за преобразование этих типов в типы спецификаций базы данных, если это необходимо, перед передачей их в источник данных.
DAL возвращает нейтральные типы данных в BLL (например, DataSet, DataTable и т. Д.)
- BLL несет ответственность за использование содержимого этих нейтральных типов данных для создания, заполнения и возврата конкретных бизнес-объектов
Ваш BLL должен ссылаться на ваш DAL. это все.
Вы, конечно, можете полностью игнорировать эту модель и взломать столько, сколько было предложено ранее, с использованием IBOOK и т. Д., Но кроме того, что вы не используете предполагаемую модель, вы можете бросить все это в одну сборку, так как вы этого не сделаете. быть в состоянии поддерживать его в любом случае.