private static void Main(string[] args) { using (var db = new JarContext()) { //Создадим массив банок и добавим его в БД: Jar[] jarArray = { new Jar("Банка1"), new Jar("Банка2"), new Jar("Банка3") }; db.Jars.AddRange(jarArray); db.SaveChanges(); //попытаемся добавить банку с проверкой на уникальность (получим ошибку, изменений не произошло): try { string duplicateName = "Банка1"; //проверка имени на уникальность var q = from Jar j in db.Jars where j.Name == duplicateName select j.Name; if (q.Count() > 0) throw new Exception("Имя банки не уникально"); db.Jars.Add(new Jar(duplicateName)); db.SaveChanges(); } catch (Exception e) { Console.WriteLine(e.Message); } //добавим историю состояний для банки 1: Jar J = (from Jar x in db.Jars where x.Name == "Банка1" select x).First(); db.History.Add(new JarHistory(J, 1, 2015, JarHistory.JarType.Empty, JarHistory.JarState.Planned)); //запланировали db.History.Add(new JarHistory(J, 2, 2015, JarHistory.JarType.Empty, JarHistory.JarState.Open, JarHistory.FillingMethod.NoFilling)); //открыли db.History.Add(new JarHistory(J, 3, 2015, JarHistory.JarType.WaterMercury, JarHistory.JarState.Open, JarHistory.FillingMethod.Funnel, 150,200, 2400)); //налили db.History.Add(new JarHistory(J, 3, 2015, JarHistory.JarType.WaterMercury, JarHistory.JarState.Closed, JarHistory.FillingMethod.Tube, 2000, 15, 3600)); //долили, закрыли db.SaveChanges(); //взглянем на состояние БД: Console.WriteLine(" * БД после добавления трех банок и истории состояний банки 1 * "); PrintJars(); PrintJarsAndHistory(); //удалим банку 1 (и связанные с ней записи) var historyRange = (from JarHistory h in db.History where h.JarInstance.Name == "Банка1" select h); db.History.RemoveRange(historyRange); db.Jars.Remove(J); db.SaveChanges(); //взглянем на состояние БД: Console.WriteLine(" * Банка 1 и все связанные с ней данные удалены * "); PrintJars(); PrintJarsAndHistory(); //Удалим банки 2 и 3. БД пуста. db.Jars.Remove((from Jar x in db.Jars where x.Name == "Банка2" select x).First()); db.Jars.Remove((from Jar x in db.Jars where x.Name == "Банка3" select x).First()); db.SaveChanges(); Console.WriteLine(" * Банки 2 и 3 также удалены, БД пуста * "); PrintJars(); PrintJarsAndHistory(); Console.WriteLine("Press any key to exit"); Console.ReadKey(); } }
private static void PrintJars() { using (var db = new JarContext()) { string format = "{0,8} | {1,9}"; Console.WriteLine("= = = = = = = = = = = = = = = = = = = ="); Console.WriteLine(format, "ID банки", "Имя банки"); foreach (Jar item in db.Jars) { Console.WriteLine(format, item.Id, item.Name); } } }
private static void PrintJarsAndHistory() { using (var db = new JarContext()) { //часть полей не показана, т.к. ширина экрана мала string format = "{0,9} | {1,7} | {2,9} | {3,13}";// | {4,5} | {5,14} | {6,13} | {7,10} | {8,11}"; Console.WriteLine("= = = = = = = = = = = = = = = = = = = ="); Console.WriteLine(format, "Имя банки", "MM.YYYY", "Состояние", "Метод заливки");//, "минут", "дебит жидкости", "обводненность", "дебит воды", "дебит ртути"); foreach (JarHistory item in db.History.Include(x => x.JarInstance)) { //формат: "Имя банки", "MM.YYYY", "Состояние", "Метод заливки", "минут", "дебит жидкости", "обводненность", "дебит воды", "дебит ртути"); string name = item.JarInstance.Name; string date = item.Month + "." + item.Year; string state = item.State.ToString(); string method = item.Method.ToString(); /*string minutes = item.Minutes.ToString(); string fluidDebit = item.FluidDebit().ToString(); string waterCutting=item.WaterCutting().ToString(); string waterDebit= item.WaterDebit().ToString(); string mercuryDebit = item.MercuryDebit().ToString();*/ Console.WriteLine(format, name, date, state, method);//, minutes, waterDebit, waterCutting, waterDebit, mercuryDebit); } } }