I've a credit card applicatoin which utilizes MyGeneration's dOODads ORM to create it's Data Access Layer. dOODad functions by producing a persistance class for every table within the database. It really works like so:

// 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();   

For that above example(i.e. Employees DAL object) I must know what's the most practical wayOrmethod to abstract a few of the implementation particulars on my small classes. I do not think that an Worker class must have Employees(the DAL) specifics in the techniques - or possibly this really is acceptable? Can you really implement some type of repository pattern? Keep in mind that this can be a high volume, perfomacne critical application.

Thanks, j

try approaching by having an interface with techniques you would like to be uncovered because of your DAL. Have the consumer code bind towards the interface.