实体框架添加范围:如何映射到存储过程?



我正在使用EF和存储过程进行数据修改操作。到目前为止,我已经能够将存储过程映射到基本操作,例如一行(实体(的插入、更新和删除。

但是,我也想映射AddRange.我需要此操作的专用存储过程,EF 调用我的添加存储过程 n 次对我不起作用。我希望它调用我的AddRange存储过程一次。

我还想将另一个常见任务映射为Clear但现在AddRange是我的首要任务。在 EF 中是否可以进行这种映射?如果不是,这是有意义的添加还是我正在寻找错误的方向?

我假设您正在谈论AddRange这是DbSet的扩展方法。

您不能将存储过程映射到AddRangeClear,因为这些方法只是准备实体,在调用SaveChanges之前不会向数据库添加任何内容。

如果您需要通过一个数据库调用添加多个记录,您可以像这样调用它,而不是使用DbSet

public class Context : DbContext
{
public void AddList()
{
this.Database.SqlQuery<YourEntityType>("storedProcedureName",params);
}
}

最新更新