public void DBReadWriteTest_1()
        {
            // Подключаемся к БД
            EntityConnectionStringBuilder ConnectionString = new EntityConnectionStringBuilder();
            ConnectionString.ProviderConnectionString =
                @"data source=../../Test_Data/DBReadWriteTest_1/testDB.sqlite";
            ConnectionString.Provider = @"System.Data.SQLite";
            ConnectionString.Metadata = @"res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl";
            WeatherDBEntity testDB = new WeatherDBEntity(ConnectionString.ToString());            

            // Очистка таблиц БД            
            foreach (var item in testDB.City1Entity)
                testDB.City1Entity.Remove(item);
            foreach (var item in testDB.City2Entity)
                testDB.City2Entity.Remove(item);
            foreach (var item in testDB.City3Entity)
                testDB.City3Entity.Remove(item);
            // Сохраняем состояние БД
            testDB.SaveChanges();

            // Создаем записи в таблицы БД
            // Запись в таблицу 1-ого города
            City1Entity City1Item = new City1Entity();
            City1Item.Date = "29.06.2014";
            City1Item.Temperature = "24";
            City1Item.Pressure = "748";
            City1Item.Wetness = "28";
            City1Item.Wind = "с/з 10";
            City1Item.Clouds = "Облачно";
            testDB.City1Entity.Add(City1Item);
            // Запись в таблицу 2-ого города
            City2Entity City2Item = new City2Entity();
            City2Item.Date = "30.07.2015";
            City2Item.Temperature = "26";
            City2Item.Pressure = "749";
            City2Item.Wetness = "30";
            City2Item.Wind = "с/в 3";
            City2Item.Clouds = "Ясно";
            testDB.City2Entity.Add(City2Item);
            // Запись в таблицу 3-ого города
            City3Entity City3Item = new City3Entity();
            City3Item.Date = "05.03.2014";
            City3Item.Temperature = "30";
            City3Item.Pressure = "750";
            City3Item.Wetness = "20";
            City3Item.Wind = "ю/в 5";
            City3Item.Clouds = "Пасмурно";
            testDB.City3Entity.Add(City3Item);
            // Сохраняем состояние БД
            testDB.SaveChanges();
            
            // Читаем записи из таблиц БД и сравниваем с ожидаемым результатом
            Assert.AreEqual<City1Entity>(City1Item, testDB.City1Entity.ToList<City1Entity>()[0]);
            Assert.AreEqual<City2Entity>(City2Item, testDB.City2Entity.ToList<City2Entity>()[0]);
            Assert.AreEqual<City3Entity>(City3Item, testDB.City3Entity.ToList<City3Entity>()[0]);            
        }
Beispiel #2
0
        // Метод для сохранения погодных данных в 2-ую таблицу БД
        public void City2Save(string connectionstring, Dictionary<string, string> weatherData)
        {
            try
            {
                // Соединение с БД
                WeatherDBEntity weatherDB = new WeatherDBEntity(connectionstring);

                // 2-ый город
                City2Entity City2Item = new City2Entity();
                City2Item.Date = weatherData["Date"];
                City2Item.Temperature = weatherData["Temperature"];
                City2Item.Pressure = weatherData["Pressure"];
                City2Item.Wetness = weatherData["Wetness"];
                City2Item.Wind = weatherData["Wind"];
                City2Item.Clouds = weatherData["Clouds"];

                // Добавляем запись в БД                
                if ((from item in weatherDB.City2Entity.ToList<City2Entity>()
                     where item.Date == City2Item.Date
                     select item).Count<City2Entity>() == 0)
                {
                    weatherDB.City2Entity.Add(City2Item);
                    weatherDB.SaveChanges();
                }                                    
                weatherDB.Dispose();
            }
            catch (Exception exception)
            {
                // Делаем запись в лог файл                
                Logger.WriteLog(System.DateTime.Now.ToString()
                    + " "
                    + exception.TargetSite.ToString()
                    + " "
                    + exception.Message);                
            } 
        }
        public void DBReadWriteTest_2()
        {
            // Подключаемся к БД
            EntityConnectionStringBuilder ConnectionString = new EntityConnectionStringBuilder();
            ConnectionString.ProviderConnectionString =
                @"data source=../../Test_Data/DBReadWriteTest_2/testDB.sqlite";
            ConnectionString.Provider = @"System.Data.SQLite";
            ConnectionString.Metadata = @"res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl";
            WeatherDBEntity testDB = new WeatherDBEntity(ConnectionString.ToString());

            // Очистка таблиц БД            
            foreach (var item in testDB.City1Entity)
                testDB.City1Entity.Remove(item);
            foreach (var item in testDB.City2Entity)
                testDB.City2Entity.Remove(item);
            foreach (var item in testDB.City3Entity)
                testDB.City3Entity.Remove(item);
            // Сохраняем состояние БД
            testDB.SaveChanges();

            // Создаем записи в таблицы БД
            // Запись в таблицу 1-ого города
            City1Entity City1Item = new City1Entity();
            City1Item.Date = "29.06.2014";
            City1Item.Temperature = "24";
            City1Item.Pressure = "748";
            City1Item.Wetness = "28";
            City1Item.Wind = "с/з 10";
            City1Item.Clouds = "Облачно";
            testDB.City1Entity.Add(City1Item);
            // Запись в таблицу 2-ого города
            City2Entity City2Item = new City2Entity();
            City2Item.Date = "30.07.2015";
            City2Item.Temperature = "26";
            City2Item.Pressure = "749";
            City2Item.Wetness = "30";
            City2Item.Wind = "с/в 3";
            City2Item.Clouds = "Ясно";
            testDB.City2Entity.Add(City2Item);
            // Запись в таблицу 3-ого города
            City3Entity City3Item = new City3Entity();
            City3Item.Date = "05.03.2014";
            City3Item.Temperature = "30";
            City3Item.Pressure = "750";
            City3Item.Wetness = "20";
            City3Item.Wind = "ю/в 5";
            City3Item.Clouds = "Пасмурно";
            testDB.City3Entity.Add(City3Item);
            // Сохраняем записи в БД
            testDB.SaveChanges();

            // Текущее число записей в таблицах БД
            int[] beforeCleanActual = new int[3] {
                testDB.City1Entity.Count<City1Entity>(),
                testDB.City2Entity.Count<City2Entity>(),
                testDB.City3Entity.Count<City3Entity>() };
            int[] beforeCleanExpected = new int[3] { 1, 1, 1};

            // Очистка таблиц БД            
            foreach (var item in testDB.City1Entity)
                testDB.City1Entity.Remove(item);
            foreach (var item in testDB.City2Entity)
                testDB.City2Entity.Remove(item);
            foreach (var item in testDB.City3Entity)
                testDB.City3Entity.Remove(item);
            // Сохраняем состояние БД
            testDB.SaveChanges();

            // Текущее число записей в таблицах БД
            int[] afterCleanActual = new int[3] {
                testDB.City1Entity.Count<City1Entity>(),
                testDB.City2Entity.Count<City2Entity>(),
                testDB.City3Entity.Count<City3Entity>() };
            int[] afterCleanExpected = new int[3] { 0, 0, 0};

            // Читаем количество записей в таблицах БД
            // и сравниваем с ожидаемым результатом
            CollectionAssert.AreEqual(beforeCleanExpected, beforeCleanActual);
            CollectionAssert.AreEqual(afterCleanExpected, afterCleanActual);                        
        }