.NET Core может сохранять в контексте, но когда я обращаюсь к _context.table, он выдает ошибку: «Невозможно открыть файлC#

Место общения программистов C#
Ответить
Anonymous
 .NET Core может сохранять в контексте, но когда я обращаюсь к _context.table, он выдает ошибку: «Невозможно открыть файл

Сообщение 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;


Подробнее здесь: https://stackoverflow.com/questions/793 ... -it-throws
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»