有没有最好的方法来删除数据库中的数据,比如使用Nhibernate删除160k的数据
我使用mssql在一个表中存储了120k的数据,我必须删除所有数据才能再次保存,但速度非常慢 我有一个名为InventarioEstoque的实体,有两个孩子InventariosEstoquesSaldos和InventarioSesToquesSaldosOrcerios,我试图删除100个,并提交到数据库,但每100个数据需要一分钟以上的时间,我看着控制台,可能是因为在查找级联删除时,正在为孩子生成查询N+1 我最后尝试的代码是有没有最好的方法来删除数据库中的数据,比如使用Nhibernate删除160k的数据,nhibernate,nhibernate-mapping,linq-to-nhibernate,Nhibernate,Nhibernate Mapping,Linq To Nhibernate,我使用mssql在一个表中存储了120k的数据,我必须删除所有数据才能再次保存,但速度非常慢 我有一个名为InventarioEstoque的实体,有两个孩子InventariosEstoquesSaldos和InventarioSesToquesSaldosOrcerios,我试图删除100个,并提交到数据库,但每100个数据需要一分钟以上的时间,我看着控制台,可能是因为在查找级联删除时,正在为孩子生成查询N+1 我最后尝试的代码是 var itensDelete = UnitOfWork.I
var itensDelete = UnitOfWork.InventariosEstoques.All().Where(x => dates.Contains(x.Data.Date) && x.OrigemInventario == OrigemInventarioEstoque.FechamentoEstoque).Select(x => x.Id);
while (itensDelete.Any())
{
var idsDelete = itensDelete.Take(100).ToList();
UnitOfWork.InventariosEstoques.Delete(x => idsDelete.Contains(x.Id));
UnitOfWork.SaveChanges();
}
有没有办法使用Nhibernate更快地删除此数据?在顶部使用Nhibernate.Linq语句添加
,并使用DmlExtensionMethods。删除扩展方法:
var itensDelete = UnitOfWork.InventariosEstoques.All()
.Where(x => dates.Contains(x.Data.Date) && x.OrigemInventario == OrigemInventarioEstoque.FechamentoEstoque)
.Delete();
UnitOfWork.SaveChanges();
在Sql Server中,是否为关系启用了级联删除?