Я пытаюсь связать массив для вставки данных в таблицу в массовой операции, используя DbCommand.
Я могу сделать это, используя OracleCommand
(и, следовательно, также используя OracleConnection
) используя:
var referenceValues = validRecords.Select(x => x.Reference).ToArray<string>();
var fundDescriptionValues = validRecords.Select(x => x.FundDescription).ToArray<string>();
var fundCodeValues = validRecords.Select(x => x.FundCode).ToArray<string>();
OracleConnection con = new OracleConnection(oracleConnectionString);
con.Open();
OracleParameter referenceParam = new OracleParameter
{
OracleDbType = OracleDbType.Varchar2,
Value = referenceValues
};
OracleParameter fundDescriptionParam = new OracleParameter
{
OracleDbType = OracleDbType.Varchar2,
Value = fundDescriptionValues
};
OracleParameter fundCodeParam = new OracleParameter
{
OracleDbType = OracleDbType.Varchar2,
Value = fundCodeValues
};
OracleCommand cmd = con.CreateCommand();
cmd.CommandText = @"
INSERT INTO FUND_IMPORT
(
REFERENCE,
FUND_DESCRIPTION,
FUND_CODE
)
VALUES
(
:1,
:2,
:3
)";
cmd.ArrayBindCount = referenceValues.Length;
cmd.Parameters.Add(referenceParam);
cmd.Parameters.Add(fundDescriptionParam);
cmd.Parameters.Add(fundCodeParam);
cmd.ExecuteNonQuery();
con.Close();
Есть ли способ выполнить этот тип операции, используя DbCommand
(и, следовательно, также используя DbConnection
)?
Мы мигрируем на SQL Сервер вместо Oracle, но я бы предпочел использовать библиотеку Generi c вместо SQLCommand
.