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]); }
// Метод для очистки таблиц БД public void ClearData(string connectionstring) { try { //Подключаемся к БД WeatherDBEntity weatherDB = new WeatherDBEntity(connectionstring); // Очистка таблиц БД foreach (var item in weatherDB.City1Entity) weatherDB.City1Entity.Remove(item); foreach (var item in weatherDB.City2Entity) weatherDB.City2Entity.Remove(item); foreach (var item in weatherDB.City3Entity) weatherDB.City3Entity.Remove(item); // Сохраняем состояние БД weatherDB.SaveChanges(); weatherDB.Dispose(); } catch (Exception exception) { // Делаем запись в лог файл Logger.WriteLog(System.DateTime.Now.ToString() + " " + exception.TargetSite.ToString() + " " + exception.Message); } }
// Метод для сохранения погодных данных в 1-ую таблицу БД public void City1Save(string connectionstring, Dictionary<string, string> weatherData) { try { // Соединение с БД WeatherDBEntity weatherDB = new WeatherDBEntity(connectionstring); // 1-ый город City1Entity City1Item = new City1Entity(); City1Item.Date = weatherData["Date"]; City1Item.Temperature = weatherData["Temperature"]; City1Item.Pressure = weatherData["Pressure"]; City1Item.Wetness = weatherData["Wetness"]; City1Item.Wind = weatherData["Wind"]; City1Item.Clouds = weatherData["Clouds"]; // Добавляем запись в БД if ((from item in weatherDB.City1Entity.ToList<City1Entity>() where item.Date == City1Item.Date select item).Count<City1Entity>() == 0) { weatherDB.City1Entity.Add(City1Item); 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); }