//----------------------------------------------------------------------- // // Copyright (c) lanedirt. All rights reserved. // Licensed under the MIT license. See LICENSE.md file in the project root for full license information. // //----------------------------------------------------------------------- namespace AliasServerDb; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; /// /// The AliasServerDbContextFactory interface. /// public class SqliteDbContextFactory : IAliasServerDbContextFactory { private readonly IConfiguration _configuration; /// /// Initializes a new instance of the class. /// /// The configuration. public SqliteDbContextFactory(IConfiguration configuration) { _configuration = configuration; } /// public void ConfigureDbContextOptions(DbContextOptionsBuilder optionsBuilder) { var connectionString = _configuration.GetConnectionString("AliasServerDbContext") + ";Mode=ReadWriteCreate;Cache=Shared"; optionsBuilder .UseSqlite(connectionString, options => options.CommandTimeout(60)) .UseLazyLoadingProxies(); } /// public AliasServerDbContext CreateDbContext() { var optionsBuilder = new DbContextOptionsBuilder(); ConfigureDbContextOptions(optionsBuilder); return new AliasServerDbContextSqlite(optionsBuilder.Options); } /// public Task CreateDbContextAsync(CancellationToken cancellationToken = default) { return Task.FromResult(CreateDbContext()); } }