Мне нужно передать коллекцию .NET в хранимую процедуру. Моя коллекция содержит 1000 записей. Каждая запись содержит 2-3 дочерних объекта других типов.Как передать библиотеку .NET Collection объектов (родительский ребенок) в хранимую процедуру SQL Server
Все, что мне нужно, чтобы вставить их сразу, вызвав хранимую процедуру из .NET.
Я уже пробовал TVP (параметр table-valued), но это просто не удовлетворяет мои потребности.
Для каждой записи уровня корня мне нужно вызвать хранимую процедуру, передав корневую запись и соответствующие дочерние записи. Это делает весь процесс очень медленным.
Именно поэтому я ищу способ, чтобы я мог передавать полный иерархический список одновременно и внутри хранимой процедуры, путем циклического и итерационного дочерних записей, я могу вставить родительские дочерние записи.
Как я могу это достичь?
Попробуйте используйте XML и распакуйте его в таблицу temp в хранимой процедуре. Это работает довольно быстро для меня. –
Табличные параметры - отличный способ сделать это. Просто передайте 2 таблицы, один для родительского другого для ребенка, сразу и некоторый ключ, чтобы связать их. – Alejandro
@Alejandro: В настоящее время я проходил почти так же. Но, скорее, передача всего родителя как одной таблицы и целых детей как другого, я передаю одну родительскую запись вместе с ее соответствующим списком детей. Но это очень медленно, потому что мне нужно вставить родительскую запись 100K. Кроме того, для каждого отдельного родителя связано с ним 3-4 ребенка. – Usman