Пример #1
0
 public abstract List <object> Query(
     QueryWindows query,
     string propertyNameFilter,
     Type entityType,
     bool disposeConnectionAfterExecute,
     DbConnection connection,
     DbTransaction transaction);
Пример #2
0
        public List <E> Query <E>(QueryWindows query, string propertyNameFilter) where E : class
        {
            List <object> objects = Query(query, propertyNameFilter, typeof(E));
            List <E>      result  = new List <E>();

            objects.ForEach(o => result.Add((E)o));
            return(result);
        }
Пример #3
0
        public int ExecuteNonQuery(QueryWindows query)
        {
            int result = -1;
            List <DatabaseTableWindows> tablesMentioned = GetTablesMentionedInQuery(query);

            using (SQLiteConnection connection = new SQLiteConnection(_connectionString))
            {
                connection.Open();
                using (SQLiteCommand command = new SQLiteCommand(query.SqlQueryString, connection))
                {
                    query.SqlParameters.ForEach(p => command.Parameters.Add(p));
                    result = command.ExecuteNonQuery();
                }
            }
            return(result);
        }
Пример #4
0
        public override List <object> Query(
            QueryWindows query,
            string propertyNameFilter,
            Type entityType,
            bool disposeConnectionAfterExecute,
            DbConnection connection,
            DbTransaction transaction)
        {
            List <object> result = null;

            try
            {
                List <DatabaseTableWindows> tablesMentioned = GetTablesMentionedInQuery(query);
                if (connection == null)
                {
                    connection = new SQLiteConnection(_connectionString);
                }
                if (connection.State != ConnectionState.Open)
                {
                    connection.Open();
                }
                using (SQLiteCommand command = new SQLiteCommand(query.SqlQueryString, (SQLiteConnection)connection))
                {
                    if (transaction != null)
                    {
                        command.Transaction = (SQLiteTransaction)transaction;
                    }
                    query.SqlParameters.ForEach(p => command.Parameters.Add(p));
                    command.CommandType = System.Data.CommandType.Text;
                    using (SQLiteDataReader reader = command.ExecuteReader())
                    {
                        result = DataHelperWindows.ParseReaderToEntities(reader, entityType, propertyNameFilter);
                    }
                }
            }
            finally
            {
                if (disposeConnectionAfterExecute &&
                    connection != null &&
                    connection.State != ConnectionState.Closed)
                {
                    connection.Dispose();
                }
            }
            return(result);
        }
Пример #5
0
        public List <DatabaseTableWindows> GetTablesMentionedInQuery(QueryWindows query)
        {
            List <DatabaseTableWindows> result = new List <DatabaseTableWindows>();

            foreach (string t in query.TableNamesInQuery)
            {
                DatabaseTableWindows table = _tables[t];
                if (table == null)
                {
                    throw new NullReferenceException(string.Format(
                                                         "Could not find table {0} mentioned in {1} inside {2}.",
                                                         t,
                                                         query.GetType().FullName,
                                                         this.GetType().FullName));
                }
                result.Add(table);
            }
            return(result);
        }
Пример #6
0
        public override List <object> Query(QueryWindows query, string propertyNameFilter, Type entityType)
        {
            List <DatabaseTableWindows> tablesMentioned = GetTablesMentionedInQuery(query);
            List <object> result = null;

            using (SQLiteConnection connection = new SQLiteConnection(_connectionString))
            {
                connection.Open();
                using (SQLiteCommand command = new SQLiteCommand(query.SqlQueryString, connection))
                {
                    query.SqlParameters.ForEach(p => command.Parameters.Add(p));
                    command.CommandType = System.Data.CommandType.Text;
                    using (SQLiteDataReader reader = command.ExecuteReader())
                    {
                        result = DataHelperWindows.ParseReaderToEntities(reader, entityType, propertyNameFilter);
                    }
                }
            }
            return(result);
        }
Пример #7
0
 public abstract List <object> Query(
     QueryWindows query,
     string propertyNameFilter,
     Type entityType);