C# - Port a database adaptor from Firebird to PostGres/MSSQL/Oracle & MySQL
$30-250 USD
Cancelado
Publicado há aproximadamente 5 anos
$30-250 USD
Pago na entrega
I have developed an ORM system that currently uses Firebird SQL database as a back-end. I have a produced an abstract Database class whereby each database that I will support will be inherited from a class called "Database".
I need assemblies making for PostGres/MSSql/Oracle/MySQL (and potentially other databases) so that I can support all these different servers.
Please supply quotation PER DATABASE to be supported. If I am happy with your work we will renew contract for each database. Need to start with PostGres.
Each assembly will require some virtual methods to be overridden to support 3 forms of functionality:
1) Inherit DataBase class and implement virtual functions for Backup, Restore and NewDatabase - ideally should forward request on to official DB backup/restore utility - ideally through API or could spawn command line if no .net API available. This will allow my app to easily create/backup/restore a database providing a folder and filename where backup / database is to be located.
2) Provide a subclass within the database class called TFunctions which should list as static methods all the internal stock database functions the database supports (COALESCE(..,..,...), ABS()), CONCAT() etc:
public abstract class FbSqlFunctions : [login to view URL]
{
protected Expression COALESCE(params Expression[] expressions)
{
var expressionList = [login to view URL](o => [login to view URL]).ToList();
var expressionStringList = [login to view URL](expressionList);
return new Expression()
{
Value = $"COALESCE({expressionStringList}"
};
}
}
If it turns out that certain functions are supported by all the database servers then the function should be moved to the base class to avoid duplication of code in sub-classes.
3:
Each database may have slightly different syntax for creating tables / views /triggers. So third area is to inherit functions such as CreateView(Name, Fields,Text) -> and spit out the correct SQL each given DB server. Again keep as much common notation as possible in base class to avoid replication.
Project ready to start immediately.
PostGres is priority. We will start with that. If I am happy with your work Then we will proceed to implement the other 3 databases and probably 4-5 less well known databases.