【发布时间】:2016-02-19 18:22:06
【问题描述】:
我在 SQL Server 中创建了一个用户定义的表类型:
CREATE TYPE dbo.TestType AS TABLE
(
ColumnA int,
ColumnB nvarchar(500)
)
我正在使用存储过程将记录插入数据库:
create procedure [dbo].[sp_Test_CustomType]
@testing TestType READONLY
as
insert into [dbo].[myTable]
select ColumnA, ColumnB
from @testing
我想使用 EF 来执行这个存储过程,但问题是:如何将用户定义的表传递给存储过程?
我尝试将存储过程添加到模型中,但无法在更新的上下文中找到所需的存储过程。
我要做的是对表执行批量插入,这是我目前使用的方法:
List<items> itemToInsertToDB = //fetchItems;
foreach(items i in itemToInsertToDB)
{
context.sp_InsertToTable(i.ColumnA, i.ColumnB)
}
目前,我使用foreach循环遍历列表以将项目插入数据库,但如果列表有很多项目,那么就会出现性能问题,所以,我正在考虑传递一个列出存储过程并在里面插入。
那么如何解决这个问题呢?还是有更好的方法来做到这一点?
【问题讨论】:
标签: c# sql sql-server entity-framework stored-procedures