Чтение и обработка изображений GIF с использованием Java

Если ваше предложение IN слишком велико для обработки MSSQL, вы можете легко использовать TableValueParameter с Dapper.

  1. Создайте свой TVP-тип в MSSQL:
    CREATE TYPE [dbo].[MyTVP] AS TABLE([ProviderId] [int] NOT NULL)
    
  2. Создайте DataTable с тем же столбцом (-ами) в качестве TVP и заполните его значениями
    var tvpTable = new DataTable();
    tvpTable.Columns.Add(new DataColumn("ProviderId", typeof(int)));
    // fill the data table however you wish
    
  3. Измените свой запрос Dapper, чтобы сделать INNER JOIN в таблице TVP:
    var query = @"SELECT * FROM Providers P
        INNER JOIN @tvp t ON p.ProviderId = t.ProviderId";
    
  4. Передача DataTable в запросе запроса Dapper
    sqlConn.Query(query, new {tvp = tvpTable.AsTableValuedParameter("dbo.MyTVP")});
    

Это также работает фантастически, когда вы хотите сделать массовое обновление нескольких столбцов - просто создайте TVP и выполните UPDATE с внутренним соединением с TVP.

0
задан Prateek 18 January 2019 в 07:04
поделиться