環境:ASP.NET core 3.1, Visual Studio 2019
以下の通り、同じDbContextを2つ登録していたのが原因。
InMemoryの方を消したら通った。
    public class Startup
    {
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            // InMemory
            services.AddDbContext<AppDbContext>(options =>
                options.UseInMemoryDatabase(nameof(AppDbContext))
                .ConfigureWarnings(m => m.Ignore(InMemoryEventId.TransactionIgnoredWarning))
                );
            // Postgres
            services.AddDbContextPool<AppDbContext>(options =>
            {
                options.UseNpgsql(Configuration.GetConnectionString(typeof(AppDbContext).Name));
            });
省略
        }