/Rhino.Etl.Core/ConventionOperations/ConventionSqlBulkInsertOperation.cs

http://github.com/ayende/rhino-etl · C# · 65 lines · 35 code · 7 blank · 23 comment · 0 complexity · 3bd6b4963497cb08939f29d97ef31b2b MD5 · raw file

  1. using System;
  2. using System.Configuration;
  3. using Rhino.Etl.Core.Operations;
  4. namespace Rhino.Etl.Core.ConventionOperations
  5. {
  6. /// <summary>Convertion wrapper around the <see cref="SqlBulkInsertOperation"/>.</summary>
  7. public class ConventionSqlBulkInsertOperation : SqlBulkInsertOperation
  8. {
  9. /// <summary>Creates a new <see cref="ConventionSqlBulkInsertOperation"/></summary>
  10. /// <param name="connectionStringName"></param>
  11. /// <param name="targetTable"></param>
  12. public ConventionSqlBulkInsertOperation(string connectionStringName, string targetTable) : this(ConfigurationManager.ConnectionStrings[connectionStringName], targetTable)
  13. {
  14. }
  15. /// <summary>Creates a new <see cref="ConventionSqlBulkInsertOperation"/></summary>
  16. /// <param name="connectionStringSettings">Connection string settings to use.</param>
  17. /// <param name="targetTable"></param>
  18. public ConventionSqlBulkInsertOperation(ConnectionStringSettings connectionStringSettings, string targetTable)
  19. : base(connectionStringSettings, targetTable)
  20. {
  21. }
  22. /// <summary>
  23. /// Prepares the schema of the target table
  24. /// </summary>
  25. protected override void PrepareSchema()
  26. {
  27. }
  28. /// <summary>
  29. /// Prepares the mapping for use, by default, it uses the schema mapping.
  30. /// This is the preferred appraoch
  31. /// </summary>
  32. public override void PrepareMapping()
  33. {
  34. }
  35. /// <summary>Adds a column to the destination mapping.</summary>
  36. /// <param name="destinationColumn">The name of column, this is case sensitive.</param>
  37. public virtual void MapColumn(string destinationColumn)
  38. {
  39. MapColumn(destinationColumn, typeof (string));
  40. }
  41. /// <summary>Adds a column and specified type to the destination mapping.</summary>
  42. /// <param name="destinationColumn">The name of the column</param>
  43. /// <param name="columnType">The type of the column.</param>
  44. public virtual void MapColumn(string destinationColumn, Type columnType)
  45. {
  46. MapColumn(destinationColumn, destinationColumn, columnType);
  47. }
  48. /// <summary>Adds a column and the specified type to the destination mapping with the given sourceColumn mapping.</summary>
  49. /// <param name="destinationColumn"></param>
  50. /// <param name="columnType"></param>
  51. /// <param name="sourceColumn"></param>
  52. public virtual void MapColumn(string destinationColumn, string sourceColumn, Type columnType)
  53. {
  54. Schema[destinationColumn] = columnType;
  55. Mappings[sourceColumn] = destinationColumn;
  56. }
  57. }
  58. }