JellyfinDbProvider.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. using System;
  2. using Microsoft.EntityFrameworkCore;
  3. using Microsoft.Extensions.DependencyInjection;
  4. namespace Jellyfin.Server.Implementations
  5. {
  6. /// <summary>
  7. /// Factory class for generating new <see cref="JellyfinDb"/> instances.
  8. /// </summary>
  9. public class JellyfinDbProvider
  10. {
  11. private readonly IServiceProvider _serviceProvider;
  12. /// <summary>
  13. /// Initializes a new instance of the <see cref="JellyfinDbProvider"/> class.
  14. /// </summary>
  15. /// <param name="serviceProvider">The application's service provider.</param>
  16. public JellyfinDbProvider(IServiceProvider serviceProvider)
  17. {
  18. _serviceProvider = serviceProvider;
  19. serviceProvider.GetRequiredService<JellyfinDb>().Database.Migrate();
  20. }
  21. /// <summary>
  22. /// Creates a new <see cref="JellyfinDb"/> context.
  23. /// </summary>
  24. /// <returns>The newly created context.</returns>
  25. public JellyfinDb CreateContext()
  26. {
  27. return _serviceProvider.GetRequiredService<JellyfinDb>();
  28. }
  29. }
  30. }