Я использую .NET Core 9, SQLite в своем личном проекте. Я могу сохранить в таблицу QueryHistory (строку можно вставить в базу данных). Но когда я вызываю GetHistory(), который обращается к _context.QueryHistory, я получаю следующее исключение:
Ошибка SQLite 14: ' невозможно открыть файл базы данных».
at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
at Microsoft.Data.Sqlite.SqliteConnectionInternal..ctor(SqliteConnectionStringBuilder ConnectionOptions, пул SqliteConnectionPool)
в Microsoft.Data.Sqlite.SqliteConnectionPool.GetConnection()
в Microsoft.Data. Sqlite.SqliteConnectionFactory.GetConnection(SqliteConnection externalConnection)
at Microsoft.Data.Sqlite.SqliteConnection.Open()
at System.Data.Common.DbConnection.OpenAsync(CancellationToken cancelToken)
--- Конец трассировки стека из предыдущего местоположение ---
в Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorExpected, CancellationToken cancelToken)
в Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorExpected, CancellationToken cancelToken)
в Microsoft.EntityFrameworkCore.Storage.RelationalConnectio
Мой код:
public class ExchangeDatabaseContext : DbContext
{
public required DbSet QueryHistory { get; set; }
public ExchangeDatabaseContext(DbContextOptions options) : base(options)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.ApplyConfigurationsFromAssembly(typeof(ExchangeDatabaseContext).Assembly);
base.OnModelCreating(modelBuilder);
}
}
public class QueryHistoryRepository : IQueryHistoryRepository
{
protected readonly ExchangeDatabaseContext _context;
public QueryHistoryRepository(ExchangeDatabaseContext context)
{
this._context = context;
}
public async Task AddHistory(QueryHistory queryHistory)
{
await _context.AddAsync(queryHistory);
await _context.SaveChangesAsync();
}
public async Task GetHistory()
{
var c = await _context.QueryHistory.ToListAsync();
return c;
}
}
// ------- in program.cs --------------
public static IServiceCollection AddPersistenceServices(this IServiceCollection services, IConfiguration configuration)
{
services.AddDbContext(options => {
options.UseSqlite(configuration.GetConnectionString("ConnectionString"));
// this line to suppress the warning when we Update-Database in nuget
options.ConfigureWarnings(warnings => warnings.Ignore(RelationalEventId.PendingModelChangesWarning));
});
services.AddScoped(typeof(IGenericRepository), typeof(GenericRepository));
services.AddScoped();
return services;
Подробнее здесь: https://stackoverflow.com/questions/793 ... -it-throws
.NET Core может сохранять в контексте, но когда я обращаюсь к _context.table, он выдает ошибку: «Невозможно открыть файл ⇐ C#
Место общения программистов C#
1734931012
Anonymous
Я использую .NET Core 9, SQLite в своем личном проекте. Я могу сохранить в таблицу QueryHistory (строку можно вставить в базу данных). Но когда я вызываю GetHistory(), который обращается к _context.QueryHistory, я получаю следующее исключение:
Ошибка SQLite 14: ' невозможно открыть файл базы данных».
at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
at Microsoft.Data.Sqlite.SqliteConnectionInternal..ctor(SqliteConnectionStringBuilder ConnectionOptions, пул SqliteConnectionPool)
в Microsoft.Data.Sqlite.SqliteConnectionPool.GetConnection()
в Microsoft.Data. Sqlite.SqliteConnectionFactory.GetConnection(SqliteConnection externalConnection)
at Microsoft.Data.Sqlite.SqliteConnection.Open()
at System.Data.Common.DbConnection.OpenAsync(CancellationToken cancelToken)
--- Конец трассировки стека из предыдущего местоположение ---
в Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorExpected, CancellationToken cancelToken)
в Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorExpected, CancellationToken cancelToken)
в Microsoft.EntityFrameworkCore.Storage.RelationalConnectio
Мой код:
public class ExchangeDatabaseContext : DbContext
{
public required DbSet QueryHistory { get; set; }
public ExchangeDatabaseContext(DbContextOptions options) : base(options)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.ApplyConfigurationsFromAssembly(typeof(ExchangeDatabaseContext).Assembly);
base.OnModelCreating(modelBuilder);
}
}
public class QueryHistoryRepository : IQueryHistoryRepository
{
protected readonly ExchangeDatabaseContext _context;
public QueryHistoryRepository(ExchangeDatabaseContext context)
{
this._context = context;
}
public async Task AddHistory(QueryHistory queryHistory)
{
await _context.AddAsync(queryHistory);
await _context.SaveChangesAsync();
}
public async Task GetHistory()
{
var c = await _context.QueryHistory.ToListAsync();
return c;
}
}
// ------- in program.cs --------------
public static IServiceCollection AddPersistenceServices(this IServiceCollection services, IConfiguration configuration)
{
services.AddDbContext(options => {
options.UseSqlite(configuration.GetConnectionString("ConnectionString"));
// this line to suppress the warning when we Update-Database in nuget
options.ConfigureWarnings(warnings => warnings.Ignore(RelationalEventId.PendingModelChangesWarning));
});
services.AddScoped(typeof(IGenericRepository), typeof(GenericRepository));
services.AddScoped();
return services;
Подробнее здесь: [url]https://stackoverflow.com/questions/79301920/net-core-is-able-to-save-to-context-but-when-i-access-context-table-it-throws[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия