我想删除DBPrograms中所有的记录,下面删除所有记录LINQ代码是否正确?谢谢!            DBContext db = DBContext(PublicDBPar.ConnectionString);
            db.DBPrograms.DeleteAllOnSubmit(db.DBPrograms);
            db.SubmitChanges();

解决方案 »

  1.   

    原型
    public void DeleteAllOnSubmit<TSubEntity>(
        IEnumerable<TSubEntity> entities
    )
    where TSubEntity : TEntity
    应该这样吧(linq不是太熟悉)
    DBContext db = DBContext(PublicDBPar.ConnectionString);
    IEnumerable<DBProgram> Programs = (from c in db.DBPrograms
          select c).ToList();  db.DBPrograms.DeleteAllOnSubmit(Programs);
      db.SubmitChanges();
      

  2.   

    你这样当然能够删除,效率应该很差。
    过程应该是:先用生成select语句将记录全部查出来 =》再为每条记录生成一条 delete语句(很多条)==》再每条进行执行删除操作。  这样的效率 太慢了吧...?DataContext有ExecuteCommend、ExecuteQuery等方法,直接执行sql语句 
    如下:
    db.ExecuteCommand("delete from Program");
      

  3.   

    DeleteAllOnSubmit(result); 
    ItemDataContext db = new ItemDataContext();
    db.ExecuteCommand("DELETE FROM Tb");