/// <summary> /// Loads the objects from DB /// </summary> /// <param name="type">requested type</param> /// <param name="clause">where clause to restrict the search</param> /// <returns>a list of <see cref="PersistentObject"/>s</returns> public List <PersistentObject> GetObjects(Type type, WhereClause clause) { ClassWrapper classWrapper = WrappingHandler.GetClassWrapper(type); List <PersistentObject> objectsToReturn = new List <PersistentObject>(); DataTable table = connection.GetTable(classWrapper, clause); foreach (DataRow row in table.Rows) { objectsToReturn.Add(LoadObject(classWrapper, row)); } ObjectCache.ApplyLoadedObjectsToCache(); return(objectsToReturn); }
/// <summary> /// Loads all objects of a type /// </summary> /// <typeparam name="T">Type to load</typeparam> /// <param name="loadFromDB">determines if object can be loaded from database</param> /// <returns>a list of <see cref="PersistentObject"/>s</returns> public List <T> GetObjects <T>(bool loadFromDB = false) where T : PersistentObject { if (loadFromDB) { RefreshType(WrappingHandler.GetClassWrapper(typeof(T))); ObjectCache.ApplyLoadedObjectsToCache(); } List <T> castedList = new List <T>(); foreach (PersistentObject obj in ObjectCache.Get(typeof(T))) { castedList.Add((T)obj); } return(castedList.Count > 0 ? castedList : null); }
/// <summary> /// Gets one object of type <paramref name="type"/> /// </summary> /// <param name="type">type of object to get</param> /// <param name="id">ID of object</param> /// <param name="loadFromDB">determines if object can be loaded from database</param> /// <returns>instance of found object of type <typeparamref name="T"/></returns> public PersistentObject GetObject(Type type, Guid id, bool loadFromDB = false) { object objToReturn = default; // check cache foreach (PersistentObject obj in ObjectCache.Get(type)) { if (obj.ID.Equals(id)) { objToReturn = obj; break; } } if (objToReturn == null && loadFromDB) { ClassWrapper clsWrapper = WrappingHandler.GetClassWrapper(type); DataRow row = connection.GetObject(clsWrapper, id); objToReturn = LoadObject(clsWrapper, row); } return(objToReturn as PersistentObject); }
public SQLiteStatementBuilder(TypeParser parser, WrappingHandler handler) : base(parser, handler) { }
public StatementBuilder(TypeParser parser, WrappingHandler handler) { fieldTypeParser = parser; wrappingHandler = handler; }