Ошибка .NET Core EF6 со строкой подключения SQLite - PullRequest
0 голосов
/ 07 декабря 2018

Я не могу передать параметры в строку подключения sqlite ...

Если я сделаю:

 public class MyDbContext : DbContext {
    public DbSet<MyData> MyData { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) {
      optionsBuilder.UseSqlite("Data Source=C:\\src\\mydb.db;");
    }
  }

Все работает нормально.Однако, если я изменю его на:

optionsBuilder.UseSqlite("Data Source=C:\\src\\mydb.db;Version=3;");

, тогда запросы будут выбрасываться System.ArgumentException: 'Keyword not supported: 'version'.'

, или если я изменю его на:

optionsBuilder.UseSqlite("Data Source=C:\\src\\mydb.db;Read Only=True;");

Затем запросы выдают System.ArgumentException: 'Keyword not supported: 'read only'.'

что здесь не так?как передать то есть только для чтения в sqlite?

1 Ответ

0 голосов
/ 07 декабря 2018

В зависимости от того, какого провайдера вы используете, определенные ключевые слова недоступны.Вы можете взглянуть на https://www.connectionstrings.com/sqlite/ для примеров. Если вы используете Microsoft.Data.Sqlite , тогда в строке подключения следует использовать ключевое слово Mode = ReadOnly

С эта заявленная проблема:

We support the following keywords.

Keyword Values
Cache   Private or Shared
Data Source The database file. Can be a URI filename.
Mode    ReadWriteCreate, ReadWrite, ReadOnly, or Memory
...