public List<Entity> allEntities(Type typeEntity) { Entity entity = (Entity)Activator.CreateInstance(typeEntity); Query query = new Query(entity.NameTable); query.addTypeQuery(TypeQuery.select); return executeSelectQuery(query, typeEntity); }
public void deleteEntity(Entity entity) { if (entity.ID == -1) { return; } Query query = new Query(entity.NameTable); query.addTypeQuery(TypeQuery.delete) .addCondition(Entity.PrimaryKey(), "=", entity.ID.ToString()); executeDeleteQuery(query); }
public void saveEntity(Entity entity) { Query query = new Query(entity.NameTable); List<object> binaryArray = new List<object>(); Dictionary<string, string> changedValues = new Dictionary<string, string>(); PropertyInfo []properties = entity.GetType().GetProperties(); Dictionary<string, string> mappingTable = entity.mappingTable(); Dictionary<string, Type> serializationParameters = entity.serializationParameters(); foreach (PropertyInfo property in properties) { if (mappingTable.ContainsKey(property.Name) && property.Name != Entity.PrimaryKey()) { if (serializationParameters.ContainsKey(property.Name))//(property.GetValue(entity).GetType().IsArray && property.GetValue(entity).GetType().GetElementType() == typeof(byte)) { if (property.GetValue(entity) != null) { BinaryFormatter serializer = new BinaryFormatter(); changedValues.Add(mappingTable[property.Name], "@data" + binaryArray.Count.ToString()); using (var ms = new MemoryStream()) { serializer.Serialize(ms, property.GetValue(entity)); binaryArray.Add(ms.ToArray()); } } } else { changedValues.Add(mappingTable[property.Name], property.GetValue(entity).ToString()); } } } if (entity.ID == -1) { query.addTypeQuery(TypeQuery.insert); } else { query.addTypeQuery(TypeQuery.update) .addCondition(Entity.PrimaryKey(), "=", entity.ID.ToString()); } query.setChangedValues(changedValues); int insertId = executeUpdateInsertQuery(query, binaryArray); if (entity.ID == -1) { entity.ID = insertId; } }
public Entity entityById(int id, Type typeEntity) { Entity entity = (Entity)Activator.CreateInstance(typeEntity); Query query = new Query(entity.NameTable); query.addTypeQuery(TypeQuery.select) .addCondition(Entity.PrimaryKey(), "=", id.ToString()); List<Entity> list = executeSelectQuery(query, typeEntity); if (list.Count > 0) { return list[0]; } return null; }