C # Design Как элегантно обернуть класс DAL - PullRequest
1 голос
/ 30 апреля 2010

У меня есть приложение, которое использует MyMeneration dOODads ORM для создания своего уровня доступа к данным. DOODAD работает, генерируя класс персистентности для каждой таблицы в базе данных. Это работает так:

// Load and Save  
Employees emps = new Employees();  
if(emps.LoadByPrimaryKey(42))  
{  
    emps.LastName = "Just Got Married";  
    emps.Save();  
}  


// Add a new record  
Employees emps = new Employees();  
emps.AddNew();  
emps.FirstName = "Mr.";  
emps.LastName = "dOOdad";  
emps.Save();  

// After save the identity column is already here for me.  
int i = emps.EmployeeID;  

// Dynamic Query - All Employees with 'A' in thier last name  
Employees emps = new Employees();  
emps.Where.LastName.Value = "%A%";  
emps.Where.LastName.Operator = WhereParameter.Operand.Like;  
emps.Query.Load();   

Для приведенного выше примера (т.е. объекта DAL сотрудников) я хотел бы знать, каков наилучший метод / метод для абстрагирования некоторых деталей реализации моих классов. Я не верю, что класс Employee должен иметь специфику Employe (DAL) в своих методах - или, возможно, это приемлемо? Можно ли реализовать какую-либо форму шаблона хранилища? Имейте в виду, что это большое объемное, критическое для перфомана приложение.

Спасибо, J

1 Ответ

0 голосов
/ 30 апреля 2010

попробуйте придумать интерфейс с методами, которые вы хотели бы видеть вашим DAL. Пусть ваш клиентский код будет привязан к интерфейсу.

...