SQLClientCoreTool

Alejandro Cernuda



Apresentando uma ferramenta simples para interação entre aplicativos .Net Core e Microsoft SQL Server. Ideal para pequenos projetos, onde você não precisa, ou quer, usar qualquer uma das maneiras comuns de acessar dados hoje. Ele também tem alguns métodos que, na prática, consomem muito tempo de desenvolvimento.



Clase DataGather

É a entidade que carrega o peso de quase todo o trabalho. Ele lida com o gerenciamento da conexão com o banco de dados e tem métodos para as operações principais. Cada vez que ele deve ser usado, o método GetIntance() é chamado. É o que acontece então.

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;

}

...

}

Exemplo de utilização

Podemos alterar a conexão, tanto com o banco de dados quanto com o servidor. No exemplo a seguir, nos conectamos ao servidor "Local1".

privatestringConnectionString { get { returnTestCases.ConnectionString; } }

publicvoidChangeServerToLocal1()

{

    DataGather dg = DataGather.GetInstance(ConnectionString);

string serverName =Check.GetCurrentServer(dg);

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

}

SQLClientCoreTool nos permite armazenar facilmente qualquer documento, imagem, pdf, etc. no banco de dados SQL. Usamos o método Transformer.CreateBlobFileAsync(string path) para converter o arquivo em um byte[] que mais tarde armazenaremos em uma coluna do tipo varbinary(max). Aqui está o exemplo.

 

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