如何将List <t>插入数据库

时间:2016-01-18 09:24:48

标签: c# sql-server

如何在不迭代整个列表并将每个对象单独保存到数据库的情况下,一次将List保存在数据库中。

//So not like this solution
foreach(T t in data){
    //Call function to save with stored procedure
    Database.Save(t);
}

(也没有使用实体框架) (我似乎只能在StackOverflow上获得基于实体框架或Dapper.Net的解决方案。)

通过以某种方式将列表发送到数据库并使用存储过程,这是否可行?

@Edit补充信息

我目前正在使用SQL 2012,并且希望能够在某些内容不起作用的情况下重新注册所有内容!

2 个答案:

答案 0 :(得分:6)

如果您至少使用SQL Server 2008,则可以使用Table Valued parameter执行此操作。这个question and answers涵盖了这个主题。

基本上,您在SQL中创建一个Type,然后在C#中创建一些内容,将您的数据转换为与给定类型匹配的IEnumerable<SqlDataRecord>

答案 1 :(得分:2)

您可以使用Table Valued Parameter将集合传递给存储过程。 MSDN