Я создал сайт ASP.NET MVC, используя .NET Core 2.2, используя базу данных SQLite.Пока все работает хорошо.Проблема начинается, когда я хочу добавить специфичные для SQLite ключевые слова в строку подключения, например
Data Source=~\\App_Data\\MyDb.db; Version=3; DateTimeFormat=UnixEpoch; DateTimeKind=Utc
Теперь я получаю
Ключевое слово не поддерживается: 'версия'
Я регистрирую базу данных следующим образом
// ConfigureServices(IServiceCollection services)
var conn = Configuration.GetConnectionString("MyDB").Replace("~", _env.ContentRootPath);
services.AddDbContext<MyDBContext>(options => options.UseSqlite(conn));
Затем MyDBContext имеет
public partial class MyDBContext : DbContext
{
public MyDBContext() { }
public SatrimonoContext(DbContextOptions<MyDBContext> options)
: base(options) { }
public virtual DbSet<Book> Book { get; set; }
}
Затем я использую ее на своей странице Модель
private SatrimonoContext _db;
public BookAccuracyListModel(SatrimonoContext dbContext)
{
_db = dbContext ?? throw new ArgumentNullException(nameof(dbContext));
}
иоттуда я могу нормально получить доступ к _db через LINQ.
Перед публикацией здесь я провел много исследований по этой теме, и лучшие ответы, которые я нашел, были this
Этот провайдер - Microsoft.Data.Sqlite.Эти строки подключения предназначены для System.Data.SQLite.
Мы поддерживаем следующие ключевые слова: кэш, источник данных, режим.
и this
Проблема, с которой я столкнулся, заключалась в том, что я пытался создать SqlConnection вместо SQLiteConnection.Выполнение этого изменения решило мою проблему.
Однако, если я делаю это "правильно", я не создаю SqlConnection и, следовательно, не могу изменить его на SQLiteConnection.Другой ответ не включает решение.
Так как мне заставить это работать правильно?