public static void EnsureColumnsExists(this SQLiteGateWay SQLiteGateWay, IEnumerable <string> WantedColumns, string TableName, bool CreateMissingColumns = false) { var AvailableColumns = SQLiteGateWay.GetColumnNames(TableName); var MissingColumns = WantedColumns.Except(AvailableColumns).ToArray(); if (!MissingColumns.Any()) { return; } if (CreateMissingColumns) { SQLiteGateWay.AddColumns(TableName, MissingColumns); } else { throw new NotAllColumnsFoundException(MissingColumns); } }