Как я могу отправить список моделей C # в хранимую процедуру в SQL?

Я хочу отправить список этой модели и получить ее в хранимой процедуре 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 в то время, когда вы можете получить проблемы с подключением.


Есть идеи?

10000