static void Main(string[] args) { using (adAgencyContext db = new adAgencyContext()) { DbInitializator.Initialize(db); Console.WriteLine("Первое задание"); Print("Выборка записей таблицы Рекламы", db.Advedirsments.ToArray()); Print("Выборка записей таблицы Заказчики", db.Customers.ToArray()); Console.WriteLine("\nВторое задание\n"); Print("Выборка с ограничением из таблицы Рекламы", db.Advedirsments.Where(a => a.AdvedirsmentsId == db.Advedirsments.First().AdvedirsmentsId).ToArray()); Console.WriteLine("\nТретье задание\n"); var query1 = from o in db.Orders group o.OrderCost by o.CustomersId into gr select new { customersId = gr.Key, Сумма = gr.Sum() }; Print("Выборка с суммой стоимости заказов по клиентам:", query1.ToArray()); Console.WriteLine("\nЧетвёртое задание\n"); var query2 = from o in db.Orders join c in db.Customers on o.CustomersId equals c.CustomersId orderby c.CustomerName descending select new { Заказчик = c.CustomerName, Дата_соглашения = o.DateOrder, Стоимость_заказа = o.OrderCost }; Print("Выборка по полям двух таблиц связи один-ко-многим:", query2.ToArray()); Console.WriteLine("\nПятое задание\n"); DateTime day = new DateTime(2018, 1, 1); var query3 = from o in db.Orders join c in db.Customers on o.CustomersId equals c.CustomersId where (o.DateBegin >= day) orderby c.CustomerName descending select new { Заказчик = c.CustomerName, Дата_соглашения = o.DateOrder, Стоимость_заказа = o.OrderCost }; Print("Выборка с ограничением по полям двух таблиц связи один-ко-многим:", query3.ToArray()); Console.WriteLine("\nШестое задание\n"); // Создать новую рекламу Advedirsments ad = new Advedirsments { AdvedirsmentsId = 6, AdType = "SMS-реклама", AdDescription = "Реклама распространяется клиентам через SMS" }; // Создать нового заказчика Customers customer = new Customers { CustomerName = "БургерКинг", CustomerAddress = "ул. Северная 7", CustomerTelephone = "380-65-87" }; db.Advedirsments.Add(ad); db.Customers.Add(customer); db.SaveChanges(); Print("Таблица рекламы после вставки: ", db.Advedirsments.ToArray()); Print("\nТаблица заказчики после вставки: ", db.Advedirsments.ToArray()); Console.WriteLine("\nСедьмое задание\n"); DateTime today = DateTime.Now.Date; //создать новый заказ Orders order = new Orders { AdvedirsmentsId = 1, CustomersId = 3, OrderCost = 1000, EmployeeId = 5, Location = "ул. Набережная", DateOrder = today.AddDays(-15), DateBegin = today.AddDays(10), DateEnd = today.AddDays(30), PaymentStatus = true }; db.Orders.Add(order); db.SaveChanges(); Print("Таблица заказы после вставки: ", db.Orders.ToArray()); Console.WriteLine("\nВосьмое задание\n"); var adDel = db.Advedirsments.Where(a => a.AdvedirsmentsId == 6); db.Advedirsments.RemoveRange(adDel); db.SaveChanges(); Print("Таблица рекламы после удаления записи: ", db.Advedirsments.ToArray()); Console.WriteLine("\nДевятое задание\n"); db.Orders.Remove(db.Orders.ToArray()[10]); db.SaveChanges(); Print("Таблица заказы после удаления записи: ", db.Advedirsments.ToArray()); db.Orders.SingleOrDefault(o => o.OrdersId == db.Orders.First().OrdersId).OrderCost += 3000; db.SaveChanges(); Print("Обновлённая таблица заказы", db.Orders.ToArray()); Console.ReadKey(); } }
public static void Initialize(adAgencyContext db) { db.Database.EnsureCreated(); if (db.Advedirsments.Any()) { return; // База данных инициализирована } int advedirsmentsNumber = 5; int customersNumber = 100; int ordersNumber = 100; string adType; string adDescription; string customerName; string customerAddress; string customerTelephone; Random randObj = new Random(1); //словарь типов рекламы string[] adTypes = { "Телевизионная", "Интернет-реклама", "Печатная", "Радио", "Уличная" }; //словарь описание типов рекламы string[] adDescrip = { "Видеоролик, бегущая строка", "реклама в Интернете, блогах, SMM", "реклама в газетах, наклейки, визтки", "реклама в радиовещании", "Баннеры" }; //заполнение таблицы рекламы for (int advedirsmentId = 1; advedirsmentId <= advedirsmentsNumber; advedirsmentId++) { adType = adTypes[advedirsmentId - 1]; adDescription = adDescrip[advedirsmentId - 1]; db.Advedirsments.Add(new Advedirsments { AdType = adType, AdDescription = adDescription, AdvedirsmentsId = advedirsmentId }); } //сохранение изменений в базу данных, связанную с объектом контекста db.SaveChanges(); //словарь название заказчиков string[] custNames = { "LowAgency", "FedEx", "BSBank", "Samsung", "Unicredit", "MTS", "Bordeux" }; //словарь адресов заказчиков string[] custAddress = { "ул. Пушкина 2", "пр.Речицкий 80", "ул. Гагарина 38", "ул. Центральная 7", "ул. Киевская 7", "ул. Давыдовская 14", "ул. Б.Хмельницкого 80" }; //словарь телефонов заказчиков string[] custTelehone = { "577-19-05", "303-23-68", "158-38-64", "190-65-87", "715-71-77" }; //заполнение таблицы заказчики for (int customerId = 1; customerId <= customersNumber; customerId++) { customerName = custNames[randObj.Next(custNames.Length)]; customerAddress = custAddress[randObj.Next(custAddress.Length)]; customerTelephone = custTelehone[randObj.Next(custTelehone.Length)]; db.Customers.Add(new Customers { CustomerName = customerName, CustomerAddress = customerAddress, CustomerTelephone = customerTelephone }); } //сохранение изменений в базу данных, связанную с объектом контекста db.SaveChanges(); //массив id сотрудника int[] employesId = { 1, 2, 3, 4, 5 }; //словарь рапсоложений реклам заказчика string[] locations = { "ул. Богданова", "пр. Речицкий", "ул. Барыкина", "ул. Машерова", "ул. Спартака", "пр. Космонавтов", "ул. Ветеранов", "пл. Соборная" }; for (int orderId = 1; orderId <= ordersNumber; orderId++) { int advedirsmentId = randObj.Next(1, advedirsmentsNumber - 1); int customerId = randObj.Next(1, customersNumber - 1); int orderCost = randObj.Next(1000, 10000); int employeerId = employesId[randObj.Next(employesId.Length)]; string location = locations[randObj.Next(locations.Length)]; DateTime today = DateTime.Now.Date; DateTime dateOrder = today.AddDays(-orderId); DateTime dateBegin = dateOrder.AddDays(randObj.Next(7)); DateTime dateEnd = dateBegin.AddDays(randObj.Next(7, 30)); bool paymentStatus; int isPay = randObj.Next(0, 1); if (isPay == 1) { paymentStatus = true; } else { paymentStatus = false; } db.Orders.Add(new Orders { DateOrder = dateOrder, DateBegin = dateBegin, DateEnd = dateEnd, Location = location, OrderCost = orderCost, PaymentStatus = paymentStatus, EmployeeId = employeerId, CustomersId = customerId, AdvedirsmentsId = advedirsmentId }); } //сохранение изменений в базу данных, связанную с объектом контекста db.SaveChanges(); }