【问题标题】:Move connectionstring to appsettings.json将连接字符串移动到 appsettings.json
【发布时间】:2018-12-01 16:11:08
【问题描述】:

我有以下 DAO 代码:

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

我想知道如何从该页面移动连接字符串并将其插入到 appsettings.json 文件中,以便在其他页面中重复使用它。

【问题讨论】:

    标签: c# asp.net-core dao


    【解决方案1】:

    在 ASP.NET Core 中,配置系统非常灵活,连接字符串可以存储在appsettings.json、环境变量、用户机密存储或其他配置源中。有关详细信息,请参阅Configuration section of the ASP.NET Core documentation。以下示例显示了存储在appsettings.json 中的连接字符串。

    {
      "ConnectionStrings": {
        "BloggingDatabase": "Server=(localdb)\\mssqllocaldb;Database=EFGetStarted.ConsoleApp.NewDb;Trusted_Connection=True;"
      },
    }
    

    上下文通常在Startup.cs 中配置,连接字符串从配置中读取。请注意GetConnectionString() 方法查找其键为ConnectionStrings:&lt;connection string name&gt; 的配置值。您需要导入Microsoft.Extensions.Configuration 命名空间才能使用此扩展方法。

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddDbContext<BloggingContext>(options =>
            options.UseSqlServer(Configuration.GetConnectionString("BloggingDatabase")));
    }
    

    【讨论】:

    • 我已经试过你告诉我的方法了。错误:“类型或命名空间名称统一”BloggingContext '找不到“。我在哪个文件中输入此代码?:公共类 BloggingContext:DbContext { public BloggingContext(DbContextOptions 选项):基础(选项){}公共 DbSet CustomerTB {get; set; } }
    • 你不需要移动那个代码,你只需要在Startup.cs中引用它。
    • 我没有上下文类。我想知道在哪里插入?在 Startup.cs 中还是应该插入到哪里?
    • 嗨!首先欢迎来到 StackOverflow!您想帮助您解决第一个问题吗?我知道自己去过那里可能会令人困惑甚至令人生畏。您最初的问题涉及移动连接字符串。如果您还有其他问题,最好打开一个新问题。这也让未来的用户也能找到答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-16
    • 1970-01-01
    相关资源
    最近更新 更多