2010-04-29 4 views
1

J'ai une application qui utilise les ORO dOODads de MyGeneration pour générer son Data Access Layer. dOODad fonctionne en générant une classe de persistance pour chaque table de la base de données. Il fonctionne comme ceci:C# Design Comment habiller élégamment une classe DAL

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

Pour l'exemple ci-dessus, je voudrais savoir quelle est la meilleure méthode/technique abstraire certains détails de mise en œuvre sur mes cours (i.e. employés objet DAL.). Je ne crois pas qu'une classe d'employés devrait avoir les détails des employés (le DAL) dans ses méthodes - ou peut-être est-ce acceptable? Est-il possible d'implémenter une forme de modèle de référentiel? Gardez à l'esprit qu'il s'agit d'un volume important, une application essentielle perfomacne.

Merci, j

Répondre

0

essayer de venir avec une interface avec des méthodes que vous voulez être exposé par votre DAL. Avoir votre code client lié à l'interface.