Ejemplo n.º 1
0
        private void getRelationData(DatabaseTable dbObject, DBRelation relation)
        {
            IRelationList list = relation.GetRelationList(dbObject);

            if (list.Populated)
            {
                return;
            }

            bool oldCommitNeededFlag = dbObject.CommitNeeded;

            list.Populated = true;

            // build query
            string selectQuery = "select " + relation.SecondaryColumnName + " from " +
                                 relation.TableName + " where " + relation.PrimaryColumnName + "=" + dbObject.ID;

            // and retireve relations
            SQLiteResultSet resultSet;

            lock (lockObject) resultSet = dbClient.Execute(selectQuery);

            // parse results and add them to the list
            list.Clear();
            foreach (SQLiteResultSet.Row currRow in resultSet.Rows)
            {
                int           objID  = int.Parse(currRow.fields[0]);
                DatabaseTable newObj = Get(relation.SecondaryType, objID);
                list.AddIgnoreSisterList(newObj);
            }

            // update flags as needed
            list.CommitNeeded     = false;
            dbObject.CommitNeeded = oldCommitNeededFlag;
        }
Ejemplo n.º 2
0
 public void Commit(IRelationList relationList)
 {
     updateRelationTable(relationList.Owner, relationList.MetaData);
 }
Ejemplo n.º 3
0
 public void Populate(IRelationList relationList)
 {
     getRelationData(relationList.Owner, relationList.MetaData);
 }