我似乎无法将参数传递给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?
答案 0 :(得分:1)
根据所使用的提供商的不同,某些关键字不可用。您可以看一下https://www.connectionstrings.com/sqlite/的示例。如果您使用的是Microsoft.Data.Sqlite,则连接字符串应使用关键字 Mode = ReadOnly
来自this个报告的问题:
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