you can create a delegate for your db calling methods that will give you asynchronous functionality. Of course, I have no idea what consequences this may have. You will need to check this out.
Using SqlConnection or OracleConnection as the base base type, you can create a common repository (add, receive, delete, etc.)
public Row GetByID (int id) {}
delegate void GetByIDDelegate (int id);
var dbCall = new GetByIDDelegate (GetByID);
dbCall.BeginAsync (...);
It's just on my head.
source share