我正在使用EF和存储过程进行数据修改操作。到目前为止,我已经能够将存储过程映射到基本操作,例如一行(实体(的插入、更新和删除。
但是,我也想映射AddRange
.我需要此操作的专用存储过程,EF 调用我的添加存储过程 n 次对我不起作用。我希望它调用我的AddRange
存储过程一次。
我还想将另一个常见任务映射为Clear
但现在AddRange
是我的首要任务。在 EF 中是否可以进行这种映射?如果不是,这是有意义的添加还是我正在寻找错误的方向?
我假设您正在谈论AddRange
这是DbSet
的扩展方法。
您不能将存储过程映射到AddRange
或Clear
,因为这些方法只是准备实体,在调用SaveChanges
之前不会向数据库添加任何内容。
如果您需要通过一个数据库调用添加多个记录,您可以像这样调用它,而不是使用DbSet
public class Context : DbContext
{
public void AddList()
{
this.Database.SqlQuery<YourEntityType>("storedProcedureName",params);
}
}