コード例 #1
0
ファイル: DbCache.cs プロジェクト: Fedorm/core-master
 public DbCache(Database db)
 {
     _db = db;
     _types = new Dictionary<string, EntityType>();
     _refs = new Dictionary<Guid, DbRef>();
     _emptyRefs = new Dictionary<String, DbRef>();
 }
コード例 #2
0
ファイル: Database.cs プロジェクト: Fedorm/core-master
 public static void Init(String solutionUri)
 {
     var uri = new Uri(solutionUri);
     string solutionName = uri.Segments[uri.Segments.Length - 1];
     solutionName = solutionName.Replace("/", "");
     solutionName = solutionName.Replace("\\", "");
     _fileName = String.Format("{0}_{1}.db", uri.Host, solutionName);
     _db = CreateInstance();
 }
コード例 #3
0
ファイル: Query.cs プロジェクト: Fedorm/core-master
        private void ExecuteIntoInternal(String tableName)
        {
            BitMobile.DbEngine.Database db = BitMobile.DbEngine.Database.Current;

            List <object> arguments = new List <object>();

            foreach (var kvp in parameters)
            {
                arguments.Add(kvp.Value);
                text = text.Replace("@" + kvp.Key, "@p" + arguments.Count.ToString());
            }

            db.SelectInto(tableName, text, arguments.ToArray <object>());
        }
コード例 #4
0
ファイル: Query.cs プロジェクト: Fedorm/core-master
        private object ExecuteInternal()
        {
            BitMobile.DbEngine.Database db = BitMobile.DbEngine.Database.Current;

            List <object> arguments = new List <object>();

            foreach (var kvp in parameters)
            {
                arguments.Add(kvp.Value);
                text = text.Replace("@" + kvp.Key, "@p" + arguments.Count.ToString());
            }

            return((object)db.Select(text, arguments.ToArray <object>()));
        }
コード例 #5
0
ファイル: Database.cs プロジェクト: Fedorm/core-master
        private static Database CreateInstance()
        {
            if (_db == null)
            {
                _db = new Database
                {
                    _connection = new SqliteConnection(String.Format("Data source={0}", GetDbPath())),
                    _commands = new Dictionary<string, SqliteCommand>(),
                    _columnsByType = new Dictionary<EntityType, string[]>()
                };
                _db._cache = new DbCache(_db);

                AddSupportedTypes();
            }

            return _db;
        }
コード例 #6
0
ファイル: Query.cs プロジェクト: Fedorm/core-master
        public object ExecuteScalar()
        {
            try
            {
                TimeStamp.Start("ExecuteScalar");

                BitMobile.DbEngine.Database db = BitMobile.DbEngine.Database.Current;

                List <object> arguments = new List <object>();
                foreach (var kvp in parameters)
                {
                    arguments.Add(kvp.Value);
                    text = text.Replace("@" + kvp.Key, "@p" + arguments.Count.ToString());
                }

                return(db.SelectScalar(text, arguments.ToArray <object>()));
            }
            finally
            {
                TimeStamp.Log("ExecuteScalar", text);
            }
        }
コード例 #7
0
ファイル: DbTransaction.cs プロジェクト: Fedorm/core-master
 public DbTransaction(Database db)
 {
     this.db = db;
     this.id = Guid.NewGuid();
     this.refs = new List<object>();
 }
コード例 #8
0
		void InitConsole (Database db = null)
		{
			if (ControllerFactory.Debugger == null)
				ControllerFactory.Debugger = Debugger.Debugger.CreateInstance (Settings.WaitDebuggerEnabled);
			else
				((IDatabaseAware)ControllerFactory.Debugger).SetDatabase (db);
		}