Table of Contents

插入select

  • 本组件用来拼接含SELECT子句的INSERT语句
  • 本组件是对ShadowSql.Core同名组件的泛型扩展
  • 支持对表类型特殊处理,增强功能、增加易用性

1. 接口

2. 基类

3. 类型

4 方法

4.1 ToInsert扩展方法

SelectInsert<TTable> ToInsert<TTable>(this TTable table, ISelect select)
    where TTable : IInsertTable;
var select = _db.From("Students")
    .ToSqlQuery()
    .Where("AddTime between '2024-01-01' and '2025-01-01'")
    .ToSelect()
    .Select("Name", "Age");
var insert = new Table("Backup2024")
    .ToInsert(select);
// INSERT INTO [Backup2024]([Name],[Age])SELECT [Name],[Age] FROM [Students] WHERE AddTime between '2024-01-01' and '2025-01-01'

4.2 InsertTo

4.2.1 InsertTo扩展方法

SelectInsert<TTable> InsertTo<TTable>(this ISelect select, TTable table)
    where TTable : IInsertTable;
var insert = _db.From("Students")
    .ToSqlQuery()
    .Where("AddTime between '2024-01-01' and '2025-01-01'")
    .ToSelect()
    .Select("Name", "Age")
    .InsertTo(new Table("Backup2024"));
// INSERT INTO [Backup2024]([Name],[Age])SELECT [Name],[Age] FROM [Students] WHERE AddTime between '2024-01-01' and '2025-01-01'

4.2.2 InsertTo重载扩展方法

SelectInsert<TTable> InsertTo<TTable>(this ISelect select, TTable table)
    where TTable : IInsertTable;
var insert = _db.From("Students")
    .ToSqlQuery()
    .Where("AddTime between '2024-01-01' and '2025-01-01'")
    .ToSelect()
    .Select("Name", "Age")
    .InsertTo(new Table("Backup2024"));
// INSERT INTO [Backup2024]([Name],[Age])SELECT [Name],[Age] FROM [Students] WHERE AddTime between '2024-01-01' and '2025-01-01'

5. 其他相关功能