2013-05-30 6 views
0

У меня есть набор классов уровня доступа к статичным базам данных, которые выполняют операции CRUD на автомобиле, дилере и большой записи отслеживания. Эти объекты могут быть довольно значительными в потреблении памяти из-за записи заметок против них и т. Д. Давайте назовем этот набор классов «А».Решения по проектированию для уровня доступа к данным ASP.NET

Кроме того, у меня есть еще один статический класс под названием Lookups, который выполняет операции только для чтения с целью заполнения DropDownLists. Возвращаются очень очень худые объекты (только идентификатор и текстовое поле) - назовем этот класс «B»

Методы в классе «B» считаются из тех же таблиц, что и в наборе «A».

Некоторые из кода в B похожи на то, что уже находится в «A», за исключением возврата меньших объектов.

Я нарушаю принцип DRY в B, но только потому, что не хочу возвращать большие объекты для заполнения выпадающего списка. Я хочу, чтобы эта система была масштабируемой, поэтому я просто собираюсь в ОЗУ. Но я не могу не думать, что может быть лучший способ, дизайн мудрый.

Что вы посоветуете?

Для следующего проекта я буду использовать Entity Framework, но это обычные ADO.NET объекты SqlConnection и SqlCommand для старой школы.

ответ

0

Я думаю, у вас должен быть один репозиторий для каждого объекта вашей бизнес-логики. Что-то вроде этого:

// dealing only with Vehicle operations 
public interface IVehicleReposity { 
    // Operations.. 
} 

public class VehicleReposity: IVehicleReposity { 
    // Impementiong operations and 
    // calling your static methods 
} 

Это позволит вам изменить свою бизнес-логику в любое время. Поскольку вы сможете называть вас статическими методами, Entity Framework или Nhibernate, если вы захотите в какой-то день.

В этом случае вы не будете повторять себя, и вы сможете работать в программе Dependency Injection easlly ,

+0

Привет, Mata. В настоящий момент у меня есть классы VehicleDA, DealerDA и HireDA, каждый из которых связан с операциями CRUD для соответствующих объектов. – user1154016

+0

Я хотел добавить DA = Data Access. Кроме того, у меня также есть LookupDA, который читает из тех же таблиц БД, что и те объекты. Поскольку LookupDA читается из одних и тех же таблиц, это означает, что есть дубликат кода. Это СУЩЕСТВЕННОЕ нарушение, но я думаю, что это самая эффективная память. Но я борюсь сам, думая, что где-то есть запах – user1154016

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