--- title: OrmLite DELETE APIs --- Deleting rows in OrmLite is simple and straight-forward with APIs to support multiple use-cases including deleting by entity, by Id, by lambda expression, by SqlExpression, or Custom SQL expression. ## Delete By Entity: ```csharp var alive = db.Single(x => x.Name == "Alive"); db.Delete(alive); var stillAlive = db.Exists(x => x.Id == alive.Id); ``` ## Delete By Id: ```csharp db.DeleteById(trackId); ``` ## Delete By inline Expression: Like updates for DELETE's we also provide APIs that take a where Expression: ```csharp db.Delete(p => p.Age == 27); var noOfNirvanaTracksDeleted = db.Delete(x => x.ArtistId == nirvana.Id && x.Year == 1991); ``` ## Delete By SqlExpression: ```csharp var q = db.From() .Where(p => p.Age == 27); db.Delete(q); ``` ## Delete By Custom SQL As well as un-typed, string-based expressions: ```csharp db.Delete(where: "Age = @age", new { age = 27 }); ``` ## Delete from Table JOIN Using a SqlExpression to delete rows by querying from a joined table: ```csharp var q = db.From() .Join((x, y) => x.Id == y.PersonId) .Where(x => x.Id == 2); db.Delete(q); ``` > Not supported in MySql ## Delete by Dictionary ```csharp db.Delete(new Dictionary { ["Age"] = 27 }); ``` ## Delete Multiple Rows Examples ```csharp //Multiple Entities var nirvana = db.Single(x => x.Name == "Nirvana"); var nirvanaTracks = db.Select(x => x.ArtistId == nirvana.Id); var noOfNirvanaTracksDeleted = db.DeleteAll(nirvanaTracks); //Multiple rows by Ids var live = db.Single(x => x.Name == "Live"); var liveTrackIds = db.Column(db.From().Where(x => x.ArtistId == live.Id).Select(x => x.Id)); var noOfLiveTracksDeleted = db.DeleteByIds(liveTrackIds); // Delete all Tracks (WARNING) var noOfTracksDeleted = db.DeleteAll(); ```