где хранить строку подключения на уровне инфраструктуры в архитектуре onion с ядром .net? - PullRequest
0 голосов
/ 25 февраля 2019

Я реализовал 3 уровня Onion Architecture - презентация, ядро ​​и инфраструктура.На уровне инфраструктуры я использовал платформу Entity с подходом «сначала код» для операций с БД и реализовал интерфейсы базового уровня.

 public class DiaryContext : DbContext
{  
    public DbSet<DiaryEntry> DiaryEntries { get; set; }
    public DbSet<DiaryWriter> DiaryWriters { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    { // string config = System.Configuration.ConfigurationManager.ConnectionStrings[0].ToString();
        if (!optionsBuilder.IsConfigured)
        {
            //optionsBuilder.UseSqlServer(config);
            optionsBuilder.UseSqlServer("Data Source=SQL1;Initial Catalog=MyDiary;Integrated Security=True");

        }
    }

, когда я пытаюсь получить строку соединения (закомментированная строка cofig имеет правильное значение) из app.config на уровне инфраструктуры, это показывает ошибку "System.ArgumentException: 'Неверное значение для ключа' attachdbfilename '.'"и прокомментированный код не работает.

Пожалуйста, помогите!

app.config

 <?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=SQL1;Initial Catalog=MyDiary;Integrated Security=True"/>
  </connectionStrings>
</configuration>
...