У меня есть приложение, которое использует ORM dOODads от MyGeneration для создания уровня доступа к данным. 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 должен иметь в своих методах особенности Employees (DAL) - или, возможно, это приемлемо? Можно ли реализовать какую-либо форму шаблона репозитория? Имейте в виду, что это приложение с большим объемом и производительностью.
Спасибо, Дж