Пример #1
0
        public void GetAllTest()
        {
            const string tableName = nameof(TestObject);

            using var context = new IBoxDBAdapter();
            context.EnsureTable <TestObject>(tableName, "Id");
            context.Open();
            context.Insert(tableName, new TestObject(1L, "Test1"));
            context.Insert(tableName, new TestObject(2L, "Test2"));
            var result = context.GetAll <TestObject>(tableName);

            Assert.AreEqual(2, result.Count);
        }
Пример #2
0
        public void GetTest()
        {
            const string tableName = nameof(TestObject);

            using var context = new IBoxDBAdapter();
            context.EnsureTable <TestObject>(tableName, "Id");
            context.Open();
            context.Insert(tableName, new TestObject(1L, "Test1"));
            var result = context.Get <TestObject>(tableName, "Name", "Test1");

            Assert.AreEqual(1L, result[0].Id);
        }
        private static void InsertEntityData <T>(string dbFolderPath, string tableName, IList <MetadataEntityRawInfo> rowInfos, IList <MetadataEntity> entityDataList, int index) where T : MetadataEntity
        {
            var          dbLocalAddress = index + 2L;
            const string dbName         = nameof(MetadataEntityDBConfig);

            using var configDBAdapter = new IBoxDBAdapter(TempFolderPath, MetadataEntityDBConfig.DatabaseLocalAddress);
            configDBAdapter.EnsureTable <MetadataEntityDBConfig>(dbName, MetadataEntityDBConfig.TablePrimaryKey);
            configDBAdapter.Open();
            var tablePrimaryKey = rowInfos[0].PropertyName;
            var success         = configDBAdapter.Insert(new MetadataEntityDBConfig(tableName, tablePrimaryKey));

            // var success = configDBAdapter.Insert(new MetadataEntityDBConfig(tableName, tablePrimaryKey));

            if (!success)
            {
                return;
            }

            var dataList = new T[entityDataList.Count];

            for (var i = 0; i < entityDataList.Count; i++)
            {
                dataList[i] = (T)entityDataList[i];
            }

            using var dataDBAdapter = new IBoxDBAdapter(TempFolderPath, dbLocalAddress);
            dataDBAdapter.EnsureTable <T>(typeof(T).Name, tablePrimaryKey);
            dataDBAdapter.Open();

            foreach (var data in dataList)
            {
                var result = dataDBAdapter.Insert(tableName, data);

                if (!result)
                {
                    Debug.LogWarning($"Can not write metadata ({data}) into database file: {tableName}!");
                }
            }

            // Copy metadata entity database file.
            CopyDatabaseFile(dbFolderPath, dbLocalAddress, tableName);
        }