PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Delegate System.Action ne prend pas les arguments '1'

Avis de non-responsabilité :je me sens vraiment mal de ne pouvoir trouver rien cela explique pourquoi cela ne fonctionne pas. Si quelqu'un sait; s'il vous plaît dites-moi. Google a échoué ici.

Il est clair que le compilateur choisit la mauvaise surcharge pour Each . Il y en a deux dans la bibliothèque, une qui prend une Action<T> et un autre qui prend une Action<T, int> .

Si vous n'utilisiez pas dynamic cela fonctionnerait bien (si je devais deviner); mais dynamic provoque toutes sortes de problèmes étranges ; plus vous utilisez Mono.

Puisque le compilateur insiste pour que vous utilisiez l'autre surcharge, la solution est assez simple. Utilisez-le !

DetectHistoryRebuild(migrationOperations).Each<dynamic>((o, i) => Generate(o));

Vous avez pris un paramètre supplémentaire et ne l'avez pas utilisé. Ce n'est pas la fin du monde.

Vous pouvez également simplement instancier explicitement l'Action pour que le compilateur n'ait pas à choisir :

DetectHistoryRebuild(migrationOperations).Each<dynamic>(new Action(o => Generate(o)));