示例#1
0
        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();

              }
        }
示例#2
0
        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);
            }
              }
        }
示例#3
0
        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);
            }
              }
        }