2016-06-02 3 views
1

Я настраиваю свое первое приложение .NET Core. Я отправляю пользователю Dapper (1.50.0-rc2) для ORM..Net CORE Dapper Connection String?

Я добавил следующее к моему appsettings.json.

"Data": { 
    "DefaultConnection": { 
     "ConnectionString": "user id=exampleusername;password=examplepassword;Data Source=db.example.com;Database=exampledb;" 
    } 
}, 

Я смущен, как получить значение ConnectionString. Поскольку .NET Core является настолько новым, онлайн-примеры повсюду, и ни один из них, по-видимому, не охватывает это.

ответ

4

У меня есть образец консольного приложения для ядра .NET на моем GitHub repository

фазы установки

var builder = new ConfigurationBuilder() 
       .SetBasePath(Directory.GetCurrentDirectory()) 
       .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true); 

Построить фазовую

Configuration = builder.Build();

Использование фазы

Configuration.GetConnectionString("DefaultConnection")

Вы можете использовать это значение для Dapper

P.S.

Вам нужно добавить 3 зависимостей в ваш project.json

"Microsoft.Extensions.Configuration": "1.0.0-rc2-final", 
"Microsoft.Extensions.Configuration.FileExtensions": "1.0.0-rc2-final", 
"Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final" 

Обновлено

Специфическое решение

сделать конфигурацию статического свойства и добавить личное сеттер

public static IConfigurationRoot Configuration { get; private set; }

и изменить ваше расширение

namespace GamesCore.Extensions 
{ 
    public class ScoreExtensions 
    { 
     private static string dataConnectionString = Startup.Configuration.GetConnectionString("DefaultConnection"); 
    } 
} 
+0

у меня есть «фаза Setup» и «Строят фаза» в методе Автозагрузка го e Startup.cs (они уже были из шаблона Visual Studio). Я добавил отсутствующие зависимости к моему project.json. Но на «Фазе использования» я получаю «Имя« Конфигурация »не существует в текущем контексте» Я попытался добавить использование Microsoft.Extensions.Configuration, но это приводит к «Тип или имя пространства имен« GetConnectionString »не существует» ошибка. –

+0

@ eat-sleep-code Что возвращает «Использовать фазу»? –

+0

Извините, слишком быстро нажмите клавишу ввода. См. Обновленный комментарий выше. –

2

Мой прохождение игры:

  1. Добавить ConnectionStrings раздел в appsettings.json:

    "ConnectionStrings": { 
        "cs1": "Server=xxxx;Port=xxxx;Database=xxxx; User Id=xxxx;Password=xxxx;Pooling=false;", 
        "cs2": "Server=xxxx;Port=xxxx;Database=xxxx; User Id=xxxx;Password=xxxx;Pooling=false;", 
        "cs3": "Server=xxxx;Port=xxxx;Database=xxxx; User Id=xxxx;Password=xxxx;Pooling=false;" 
    }, 
    
  2. Создать класс, представляющий раздел строк подключения:

    public class ConnectionStringList 
    { 
        public string cs1 { get; set; } 
        public string cs2 { get; set; } 
        public string cs3 { get; set; } 
    } 
    
  3. Открыть запуск.CS и добавьте выше класс конфигурации коллекции услуг в ConfigureServices:

    public void ConfigureServices(IServiceCollection services) 
    { 
        ... 
        services.AddOptions(); 
        services.Configure<ConnectionStringList>(Configuration.GetSection("ConnectionStrings")); 
    } 
    
  4. Вводят IOptions <ConnectionStringList> в ваш контроллер/услуг и т.д., и извлечь ваше соединение строковое значение из Значение свойство:

    public SampleController(IOptions<ConnectionStringList> connectionStrings) 
    { 
        string cs1 = connectionStrings.Value.cs1; 
        ...