Я хочу отправить список этой модели и получить ее в хранимой процедуре SQL:
public class Worker
{
public int Id { get; set; }
public string Name { get; set; }
public string LastName { get; set; }
}
Список:
List<Worker> worker = new List<Worker>({
new Worker {
Id = 1,
Name = "Lois",
LastName= "Smith"
},
new Worker {
Id = 2,
Name = "Peter",
LastName= "Smith"
}
});
Хранимая процедура: ???????????
Всего 1 ответ
Я бы сказал, ссылаясь на эту страницу. https://docs.microsoft.com/en-us/sql/relational-databases/tables/use-table-valued-parameters-database-engine?view=sql-server-2017 . Вы можете создать тип таблицы, заданный пользователем, и настроить хранимую процедуру, чтобы ввести пользовательский тип таблицы в качестве входного.
Если вы используете SqlCommand, вы просто добавляете свой список объектов в comm.Parameters перед вызовом ExecuteNonQuery. Обратите внимание, что имена и типы вашего объекта должны соответствовать типу вашей пользовательской таблицы.
Я вижу, что другие рекомендовали делать звонки индивидуально. Это часто прекрасно, пока вы можете управлять своими подключениями. Если операция вставляет много данных в цикл, и вы вызываете процедуру для добавления записей 1 в то время, когда вы можете получить проблемы с подключением.