Is slechts een voorbeeldje... uit de losse pols geschreven, dus het zou wel eens kunnen dat er hier en daar een hiaat in zit
Normaalgezien moet je ofwel met stored procedures werken, of met een tussenclass die je gegevens mapt naar je business class... Merk op dat je per entiteit één sourcefile hebt, waar enkel de dataaccess in vervat zit.
Hier een vb voor je datamapping class :
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| public static class DMCustomers:DMBase {
public static Customers GetAllCustomers(){
DataTable dt=DataManager.OpenTable("Select * from customers");
return MapDataTableToCustomers(dt);
}
public static Customers GetActiveCustomers(){
DataTable dt=DataManager.OpenTable("Select * from customers where....");
return MapDataTableToCustomers(dt);
}
private static Customers MapDataTableToCustomers(DataTable dt) {
Customers cs=new Customers();
foreach (DataRow dr in dt.rows) {
Customers c=new Customer(dr["id"]);
c.Name=dr["Name"];
...
cs.Add(c);
}
}
...
} |
en in je hoofdprogramma roep je dan een instance van alle customers als volgt op :
C#:
1
| Customers allCustomers=DMCustomers.GetAllCustomers() |
Je kan natuurlijk ook deze aparte laag laten vallen, en ipv op deze manier te werken, werken met stored procedures.
Ik zeg niet dat dit de enige manier is, maar wel dat dit een manier is die wel degelijk in de praktijk zijn nut al heeft bewezen. (bij mij toch althans

)
@whoami : mbt tot multithreading : ik heb zelf niet veel ervaring mbt multithreading, maar zo zou je toch om god-weet-welke-reden-dan-ook twee verschillende instances van je class kunnen aanmaken, zodat bv 1 thread constant een statustabel controleert, en de andere het reguliere werk doet, bv berekeningen etc..., en op die manier vermijd je dan dat je berekeningen gestopt worden omdat er ondertussen een controle op een bepaalde status moet gebeuren...