/// <summary> /// Generates a "DELETE FROM tablename WHERE pkcolumns = ?" statement for a POCO of Type T. /// </summary> public string GenerateDelete <T>() { PocoData pocoData = _pocoDataFactory.GetPocoData <T>(); if (pocoData.Columns.Count == 0) { throw new InvalidOperationException(string.Format(NoColumns, "DELETE", typeof(T).Name)); } if (pocoData.MissingPrimaryKeyColumns.Length > 0) { throw new InvalidOperationException(string.Format(MissingPkColumns, "DELETE", typeof(T).Name, pocoData.MissingPrimaryKeyColumns.ToCommaDelimitedString())); } string pkColumns = string.Join(" AND ", pocoData.GetPrimaryKeyColumns().Select(c => string.Format("{0} = ?", c.ColumnName))); return(string.Format("DELETE FROM {0} WHERE {1}", pocoData.TableName, pkColumns)); }