Linq to SQL删除或清空表的效率问题

时间:2022-06-12 19:19:01

今天在项目中需要删除一张表中的所有数据,或删除所有id=“XXX”的数据

使用如下代码:

                MAList  =  ctx.T_Info_MAs.Where(c  =>  c.StockCode  ==  stockcode).ToList();
                ctx.T_Info_MAs.DeleteAllOnSubmit(MAList);
                ctx.SubmitChanges();

 

发现删除的速度极其缓慢,并且多了许多无用功(取出需要删除元素的列表),在数据量上30万时实在难以忍受

故采用如下方法:

ctx.ExecuteCommand( " DELETE FROM T_Info_MA WHERE [STOCKCODE]= "   +  stockcode);

 

若需要清空一个表,则可直接使用:

ctx.ExecuteCommand( " TRUNCATE TABLE T_Info_MA " );