Beispiel #1
0
        /// <summary>
        /// Связывает объект с менеджером, устанавливает состояние "Added" если было "Detached"
        /// </summary>
        /// <param name="prop"></param>
        public void Attach(ObjectEntry <int, int> obj)
        {
            obj.SetManager(this);

            if (obj.State == EntryState.Detached)
            {
                obj.SetState(EntryState.Added);
            }
        }
Beispiel #2
0
        public ObjectEntry <int, int> CreateObject(int objKey, string type)
        {
            StartBatch();
            _batch.Exec(String.Format(SQLConstants.InsertObject, objKey, type));
            EndBatch();

            // Сохраняем целостность ключей
            _lastObjectKey = Math.Max(_lastObjectKey, objKey);

            var obj = new ObjectEntry <int, int>(objKey, type);

            Attach(obj);
            obj.SetState(EntryState.Unchanged);
            return(obj);
        }
Beispiel #3
0
        public ObjectEntry <int, int> GetObject(int objKey)
        {
            SQLiteDataReader reader = _driver.Query(
                String.Format(
                    SQLConstants.SelectObject,
                    objKey
                    )
                );

            if (reader.HasRows)
            {
                if (reader.Read())
                {
                    var obj = new ObjectEntry <int, int>(reader.GetInt32(0), reader.GetString(1));
                    Attach(obj);
                    obj.SetState(EntryState.Unchanged);
                    return(obj);
                }
            }
            return(null);
        }