我想在Mono上構建this repository的PostgreSqlGeneration
代碼。不幸的是,我收到了一個我不明白的錯誤。代表System.Action <dynamic,int>不採用'1'參數
在PostgreSqlMigrationSqlGenerator類中的以下方法給出了生成錯誤「代表System.Action不採取'1' 參數」:
private void GenerateStatements(IEnumerable<MigrationOperation> migrationOperations)
{
Check.NotNull(migrationOperations, "migrationOperations");
DetectHistoryRebuild(migrationOperations).Each<dynamic>(o => Generate(o)); // <=here!
}
/編輯擴展方法的簽名如下:
/編輯2.下面是Generate
方法的聲明:
private void Generate(HistoryOperation migration)
{
//migration
Check.NotNull(migration, "historyOperation");
using (var writer = Writer())
{
migration.CommandTrees.Each(
commandTree =>
{
switch (commandTree.CommandTreeKind)
{
case DbCommandTreeKind.Insert:
writer.Write(GetInsertHistorySql((DbInsertCommandTree)commandTree));
break;
}
});
Statement(writer);
}
}
我不知道爲什麼發生這種情況,因爲Each
只有dynamic
類型,沒有整數。但我對這種lambda表達式沒有經驗。要了解更多信息並讓遷移工作,我希望有人能夠解釋爲什麼會發生錯誤以及如何修復。
@BradleyDotNET我把簽名放在問題中。 – 2014-11-21 19:03:56
好的謝謝。那麼我不明白爲什麼它會要求一個'int'。 – BradleyDotNET 2014-11-21 19:05:58
它似乎需要一個簽名錯誤的擴展方法? – 2014-11-21 19:09:26