dotnet/efcore · error · OperationException

Unable to find provider assembly

Error message

Unable to find provider assembly '{assemblyName}'. Ensure the name is correct and it's referenced by the project.

What it means

OperationException CannotFindRuntimeProviderAssembly thrown when Assembly.Load(new AssemblyName(provider)) fails for the configured database provider assembly. The provider runtime package is not present where the tools can load it.

Solutions

  1. Install the provider package into the startup project: `dotnet add package Microsoft.EntityFrameworkCore.SqlServer`.
  2. Run `dotnet restore` to ensure the assembly is on disk.
  3. Verify the package name spelling used by Use<Provider> matches an installed package.
  4. Align provider version with the EF Core version (e.g. both 9.0.x).

Example fix

# before - provider package missing in startup project
> dotnet ef migrations add Init

# after
> dotnet add src/MyApp.Api package Microsoft.EntityFrameworkCore.SqlServer
> dotnet restore
> dotnet ef migrations add Init
Defensive patterns

Strategy: validation

Validate before calling

try { Assembly.Load(new AssemblyName(providerName)); }
catch { throw new InvalidOperationException($"Provider assembly '{providerName}' is not loadable; add the NuGet package and restore."); }

Type guard

static bool ProviderAssemblyIsReferenced(Assembly app, string name)
    => app.GetReferencedAssemblies().Any(a => a.Name == name);

Try / catch

try { /* design-time op */ }
catch (OperationException ex) when (ex.Message.Contains("Unable to find provider assembly"))
{ /* dotnet add package <Provider.EFCore>; dotnet restore */ }

Prevention

When it happens

Trigger: UseSqlServer/UseNpgsql/etc. names a provider whose runtime assembly cannot be loaded — package not referenced, wrong package name, or version not restored. Only thrown when throwOnError is true (the provider is required, not merely referenced).

Common situations: Provider NuGet package added to the wrong project (startup vs data project), a typo in a custom provider name, version mismatch between EFCore and the provider package, or restore did not complete.

Related errors


AI-assisted analysis of dotnet/efcore@3a2006ef56 (2026-08-11). Data as JSON: /api/errors/9f80472a42bf51c7. Report an issue: GitHub.

Appendix: source

Thrown at src/EFCore.Design/Design/Internal/DesignTimeServicesBuilder.cs:169

        _reporter.WriteVerbose(DesignStrings.FindingProviderServices(provider));

        Assembly providerAssembly;
        try
        {
            providerAssembly = Assembly.Load(new AssemblyName(provider));
        }
        catch (Exception ex)
        {
            var message = DesignStrings.CannotFindRuntimeProviderAssembly(provider);

            if (!throwOnError)
            {
                _reporter.WriteVerbose(message);

                return;
            }

            throw new OperationException(message, ex);
        }

        var providerServicesAttribute = providerAssembly.GetCustomAttribute<DesignTimeProviderServicesAttribute>();
        if (providerServicesAttribute == null)
        {
            var message = DesignStrings.CannotFindDesignTimeProviderAssemblyAttribute(
                provider);

            if (!throwOnError)
            {
                _reporter.WriteVerbose(message);

                return;
            }

            throw new InvalidOperationException(message);
        }

View on GitHub (pinned to 3a2006ef56)