protected virtual MigrationStatement Generate(HistoryOperation op)
{
if (op == null)
{
return(null);
}
MigrationStatement stmt = new MigrationStatement();
var cmdStr = "";
SqlGenerator generator = new SelectGenerator();
foreach (var commandTree in op.CommandTrees)
{
switch (commandTree.CommandTreeKind)
{
case DbCommandTreeKind.Insert:
generator = new InsertGenerator();
break;
case DbCommandTreeKind.Delete:
generator = new DeleteGenerator();
break;
case DbCommandTreeKind.Update:
generator = new UpdateGenerator();
break;
case DbCommandTreeKind.Query:
generator = new SelectGenerator();
break;
case DbCommandTreeKind.Function:
generator = new FunctionGenerator();
break;
default:
throw new NotImplementedException(commandTree.CommandTreeKind.ToString());
}
cmdStr = generator.GenerateSQL(commandTree);
ReplaceParemeters(ref cmdStr, generator.Parameters);
stmt.Sql += cmdStr.Replace("dbo", "") + ";";
}
return(stmt);
}