У меня есть хранимая процедура, которая выглядит следующим образом:MySQL хранимые процедуры основная вставка
InsertItem: INSERT INTO (IN itemId INT, name TEXT);
Есть ли способ, которым я мог бы выполнить большую часть этого? как вместо выполнения что-то вроде этого:
using (MySqlConnection connection = new MySqlConnection(_connectionString))
{
connection.Open();
foreach (Item item in GetItems())
{
using (MySqlCommand command = new MySqlCommand("InsertItem", connection))
{
command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddWithValue("@itemId", item.ItemId);
command.Parameters.AddWithValue("@name", item.Name);
command.ExecuteNonQuery();
}
}
}
Я пытаюсь достичь кода, глядя, как, что без successing:
using (MySqlConnection connection = new MySqlConnection(_connectionString))
{
connection.Open();
using (MySqlCommandBulk command = new MySqlCommand("InsertItem", connection))
{
command.CommandType = CommandType.StoredProcedure;
for (Item item in GetItems())
{
MySqlCommandBulkItem bulkItem = new MySqlCommandBulkItem();
bulkItem["itemId"] = item.ItemId;
bulkItem["name"] = item.Name;
command.BulkItems.Add(bulkItem);
}
command.Execute();
}
}
Я считаю, что команда будет посылать все данные сразу , и не будет отправлять каждый запрос в одиночку.
Любые идеи?
Вам нужно использовать хранимую процедуру? Вместо использования процедуры, создающей сценарий объемной вставки, может быть правильным способом для вашей ситуации. –