SQLClientCoreTool

Alejandro Cernuda



Introduzione di un semplice strumento per l'interazione tra applicazioni .Net Core e Microsoft SQL Server. Ideale per piccoli progetti, in cui non è necessario, o non si desidera, utilizzare nessuno dei modi comuni per accedere ai dati oggi. Ha anche alcuni metodi che in pratica consumano molto tempo di sviluppo.



Clase DataGather

È l'entità che porta il peso di quasi tutto il lavoro. Si occupa della gestione della connessione con il database e dispone di metodi per le operazioni principali. Ogni volta che deve essere utilizzato, viene chiamato il metodo GetIntance(). Questo è ciò che accade allora.

publicsealedclassDataGather

{

...

privatestatic Lazy<DataGather> instance = new Lazy<DataGath er>(() => new DataGather());

 

publicstatic DataGather GetInstance( string connectionString, string dataBaseName = "")

    {

bool haveOldInstanceWithDifferentConnection = Builder != null && (Builder.ConnectionString != connectionString || instance.Value.ConnectionString != connectionString);

        Builder = new SqlConnectionStringBuilder(connectionString);

if (!string .IsNullOrWhiteSpace(dataBaseName) || haveOldInstanceWithDifferentConnection)

        {

            Builder.InitialCatalog = !string .IsNullOrWhiteSpace(dataBaseName) ? dataBaseName : Builder.InitialCatalog;

returnnew DataGather();

        }

return instance.Value;

}

...

}

Esempio di utilizzo

Possiamo cambiare la connessione, sia al database che al server. Nell'esempio seguente ci connettiamo al server "Local1".

privatestringConnectionString { get { returnTestCases.ConnectionString; } }

publicvoidChangeServerToLocal1()

{

    DataGather dg = DataGather.GetInstance(ConnectionString);

string serverName =Check.GetCurrentServer(dg);

    dg =DataGather.GetInstance(ConnectionString.Replace(serverName, "local1"));

}

SQLClientCoreTool ci consente di archiviare facilmente qualsiasi documento, immagine, pdf, ecc. Nel database SQL. Usiamo il metodo Transformer.CreateBlobFileAsync(string path) per convertire il file in un metodo byte[] che verrà successivamente memorizzato in una colonna di tipo varbinary(max). Ecco l'esempio.

 

publicasyncTask TestCreateBlobFileAsync(string path)

{

           BlobFile blobFile = await Transformer.CreateBlobFileAsync(path);

 

            ValueTest valueTest = newValueTest();

            valueTest.Name = blobFile.Name;

            valueTest.GuidId = newGuid();

            valueTest.Photo = blobFile.FileData;

            valueTest.Total = -1;

 

            DataGather dg = DataGather.GetInstance(ConnectionString);

 

int result = awaitdg.InsertAsync(valueTest);