/// <summary> Возвращает свободный идентификатор для данного типа объекта </summary> /// <param name="entityType">Тип объекта</param> /// <returns>Идентификатор</returns> public id GetID(DBEntity entity) { id Result = null; List <DBObject> objects = this.Storage.First(x => x.Key == entity).Value; if (objects.Count == 0) { Result = new id(1); } else { objects = objects.OrderBy(x => x.ID).ToList(); bool isFinded = false; for (int I = 0; I < objects.Count; I++) { if (objects[I].ID != I + 1) { Result = new id(I + 1); isFinded = true; break; } } if (!isFinded) { Result = objects.Last().ID.Value + 1; } } return(Result); }
/// <summary> Создаёт новый объект и сохраняет его в Хранилище Данных </summary> public TObject CreateDBObject <TObject>() where TObject : DBObject { id ID = this.GetID(typeof(TObject)); TObject Result = DBObject.GetEmpty(typeof(TObject), ID) as TObject; this.AddDBObject(Result); return(Result); }
/// <summary> Создаёт новый объект и сохраняет его в Хранилище Данных </summary> public DBObject CreateDBObject(DBEntity entity) { id ID = this.GetID(entity); DBObject Result = DBObject.GetEmpty(entity, ID); this.AddDBObject(Result); return(Result); }
/// <summary> Делает запрос на удаление </summary> /// <param name="TableName">Имя таблицы</param> /// <param name="ID">ИД удаляемого объекта</param> protected void Delete(string TableName, id ID) { string sqlCommand = string.Format("DELETE FROM '{0}' WHERE ID = '{1}'", TableName, ID.ToString()); using (SQLiteCommand command = new SQLiteCommand(sqlCommand, connection)) { command.ExecuteNonQuery(); } }