private string GenerateFunctionSql(ICollection<DbModificationCommandTree> commandTrees, string rowsAffectedParameter)
{
DebugCheck.NotNull(commandTrees);
Debug.Assert(commandTrees.Any());
var functionSqlGenerator = new DmlFunctionSqlGenerator(_sqlGenerator);
switch (commandTrees.First().CommandTreeKind)
{
case DbCommandTreeKind.Insert:
return functionSqlGenerator.GenerateInsert(commandTrees.Cast<DbInsertCommandTree>().ToList());
case DbCommandTreeKind.Update:
return functionSqlGenerator.GenerateUpdate(commandTrees.Cast<DbUpdateCommandTree>().ToList(), rowsAffectedParameter);
case DbCommandTreeKind.Delete:
return functionSqlGenerator.GenerateDelete(commandTrees.Cast<DbDeleteCommandTree>().ToList(), rowsAffectedParameter);
}
return null;
}