32 messaggi dal 17 febbraio 2015
Buongiorno a tutti!

Chiedo il vostro aiuto per cercare di convertire il codice che vi riporto di seguito, da una stringa di connessione (e quindi un elaborazione) basata su LocalDB portandola a SqlServer.

Questo è il codice DAO (con LocalDb):

using Dapper;
using PerformanceComWebAPI.Modelos;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;

namespace PerformanceComWebAPICompleto.DAO
{
    public class ClienteDAO
    {
        //string da conexão com a base de dados
        private const string connectionString = @"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=TesteDapper;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False";
        /// <summary>
        /// Listar todos os cliente da base de dados
        /// </summary>
        /// <returns></returns>
        public List<Cliente> Listar()
        {
            var sql = "select * from dbo.Cliente";
            List<Cliente> clientes = new List<Cliente>();

            using (var connection = new SqlConnection(connectionString))
            {
                clientes = connection.Query<Cliente>(sql).ToList();
            }

            return clientes;
        }

        /// <summary>
        /// Metodo que recupera o cliente pelo id
        /// </summary>
        /// <param name="idCliente">id cliente que vai ser recuperado</param>
        /// <returns>O cliente que correspondente do cliente ou null quando não tiver cliente com id</returns>
        public Cliente RecuperarPorID(int idCliente)
        {
            var sql = "select * from dbo.Cliente where id = @id";

            Cliente cliente = new Cliente();

            using (var connection = new SqlConnection(connectionString))
            {
                cliente = connection.QueryFirstOrDefault<Cliente>(sql, new { id = idCliente });
            }

            return cliente;
        }
    }
}




Questa è la modifica che ho aggiunto in Startup.cs:

public void ConfigureServices(IServiceCollection services)
        {
            //AGGIUNTA
            services.AddSingleton<IConfiguration>(Configuration);
            services.AddDbContext<DatabaseContext>(options =>
            options.UseSqlServer(Configuration.GetConnectionString("ProductContext")));
            /////////
        }


e questo è appsetting.json:

{
 "Logging": {
    "IncludeScopes": false,
  "LogLevel": {
    "Default": "Warning"
  }
  },
  "ConnectionStrings": {
    "ProductContext": "Data Source=xxxx\\SQLEXPRESS;Initial Catalog=TestDb;Integrated Security=False;User ID=***;Password=*****;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"
  },
  "AllowedHosts": "*"
}


Nella directory Models, che non so perché nell'esempio che ho trovato si chiama 'Modelos', ho creato un file (DatabaseContext.cs)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using PerformanceComWebAPI.Modelos;

namespace PerformanceComWebAPICompleto.Modelos
{
    public class DatabaseContext : DbContext
    {
        public DatabaseContext(DbContextOptions<DatabaseContext> options) : base(options)
        {

        }
        public DbSet<Cliente> Clienti { get; set; }
    }
}


E, nella stessa directory il file Cliente.cs (posso unire DatabaseContext.cs nello stesso file Cliente.cs, o debbono essere separati?!)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace PerformanceComWebAPI.Modelos
{
    public class Cliente
    {
        public int Id { get; set; }
        public string Nome { get; set; }
        public double? Teste1 { get; set; }
        public double? Teste2 { get; set; }
        public double? Teste3 { get; set; }
    }
}




Grazie in anticipo!
Modificato da AspNetx il 02 dicembre 2018 12.42 -
Modificato da AspNetx il 02 dicembre 2018 12.43 -
209 messaggi dal 22 gennaio 2017
Contributi
Il codice è già corretto.
Bisogna solamente cambiare la connection string: https://www.connectionstrings.com/sql-server/

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.