in src/dotnet/Rider.Plugins.EfCore/EntityFrameworkCoreHost.cs [44:82]
public EntityFrameworkCoreHost(
Lifetime lifetime,
ISolution solution,
SolutionTracker solutionTracker,
ShellRdDispatcher shellRdDispatcher,
SupportedMigrationsProjectsProvider supportedMigrationsProjectsProvider,
SupportedStartupProjectsProvider supportedStartupProjectsProvider,
MigrationsProvider migrationsProvider,
DbContextProvider dbContextProvider,
EfCorePackagesProvider packagesProvider,
ILogger logger)
{
_lifetime = lifetime;
_solution = solution;
_solutionTracker = solutionTracker;
_shellRdDispatcher = shellRdDispatcher;
_supportedMigrationsProjectsProvider = supportedMigrationsProjectsProvider;
_supportedStartupProjectsProvider = supportedStartupProjectsProvider;
_migrationsProvider = migrationsProvider;
_dbContextProvider = dbContextProvider;
_packagesProvider = packagesProvider;
_logger = logger;
_efCoreModel = solution.GetProtocolSolution().GetRiderEfCoreModel();
_efCoreModel.HasAvailableMigrations.SetSync(HasAvailableMigrations);
_efCoreModel.GetAvailableMigrations.SetSync(GetAvailableMigrations);
_efCoreModel.GetAvailableDbContexts.SetSync(GetAvailableDbContexts);
_efCoreModel.GetAvailableDbProviders.SetSync(GetAvailableDbProviders);
_efCoreModel.GetAvailableToolPackages.SetSync(GetAvailableToolsPackages);
_efCoreModel.RefreshDotNetToolsCache.SetVoid(RefreshDotNetToolsCache);
_solutionTracker.OnAfterSolutionUpdate += InvalidateProjects;
_solutionTracker.OnAfterToolsCacheUpdate += InvalidateEfToolsDefinition;
_solutionTracker.OnAfterNuGetUpdate += InvalidateProjects;
_solutionTracker.OnAfterSolutionLoad += OnSolutionLoaded;
_solutionTracker.Setup();
}