Ejemplo n.º 1
0
        static void Main(string[] args)
        {

            var context = new PhoneStoreEntities();
            Console.WriteLine("Формирование запроса с проекцией");
            // формирование запроса 
            var query = from c in context.Users select new { c.Login, c.Password, c.Email };
            Console.WriteLine(query);
            foreach (var user in query)
                Console.WriteLine("{0} {1}", user.Login, user.Email);

            Console.ReadLine();
            Console.Clear();

            Console.WriteLine("Формирование вложенненного запроса");

            var query2 = from user in context.Users
                        orderby user.Login
                        select user;

            Console.WriteLine(query2);
            Console.WriteLine();

            var nestedQuery = from a in query2
                                where a.Password.Length < 5
                                select a;
            Console.WriteLine(nestedQuery);
            
            foreach (var user in nestedQuery)
                Console.WriteLine(user.Password);

            Console.ReadKey();

        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            var context = new PhoneStoreEntities();
            Console.WriteLine("Формирование запроса");
            var query = from c in context.Users select c;
               
            Console.WriteLine("Выполнение запроса Linq2Entities");
            Console.WriteLine(query);
            foreach (var user in query)  // выполнение запроса к базе
                Console.WriteLine(user.Login);

            Console.ReadLine();
            Console.Clear();
            
            Console.WriteLine("Выполнение запроса Linq2Entities");
            int userCount = query.Count();  // выполнение запроса к базе
            Console.WriteLine("Total number of records:{0}", userCount);


            Console.WriteLine("Формирование запроса и получение данных");
            IQueryable<Users> query2 = from c in context.Users select c;
            Console.WriteLine(query2);
   
            IEnumerable<Users> Users = query.ToList(); // выполнение запроса
            // далее работаем с локальными данными (запросов к безе нет )
            foreach (var User in Users)      // обращения к базе нет
                Console.WriteLine(User.Login);
            int userCount2 = Users.Count();

            Console.WriteLine("Total number of records:{0}", userCount2); // обращения к базе нет
            Console.ReadKey();

            // Смотрим в профайлер!
        }
Ejemplo n.º 3
0
     // Просмотр режимов работы запросов в SQL Profiler
        // Настройка SQL Profiler:
        // - подключение к серверку (localdb)\v11.0
        // Свойства трассировки -> Выбор событий:
        // - убрать признаки в след разделах:
        // * Audit Login
        // * Audit Logout
        // * Existing Connection
        // * SQL Batch Starting

        public static void Main()
        {
            var db = new PhoneStoreEntities();
            Console.WriteLine("Простой запрос");
            //Формирование запроса на получение списка пользователей
            IQueryable<Users> query = from c in db.Users
                                      select c;
            // Вывод содержимого запроса
            Console.WriteLine(query);
            foreach (var item in query)
                Console.WriteLine(item.Login);

            Console.ReadLine();
            Console.Clear();
            
            Console.WriteLine("Запрос на выборку");
            var query2 = from c in db.Users
                        let fullName = c.Login + "  " + c.Password
                        orderby fullName
                        where c.Password.Length>3
                        select fullName;
            // Вывод содержимого запроса
            Console.WriteLine(query2);
            foreach (var item in query2)
                Console.WriteLine(item);

            Console.ReadLine();
            Console.Clear();

            Console.WriteLine("Запрос на группировку");
            var query3 = from c in db.UsersInfo
                        group c by c.Code into gr
                         select new {   Key = gr.Key, 
                                        Count = gr.Count(),
                                        Group = gr  };

            Console.WriteLine(query3);
       
            foreach (var group in query3)
            {
                if (group.Key != null)
                {
                    Console.Write("Code = {0} ,", group.Key);
                    Console.WriteLine("Count = {0}", group.Count);
                }
            }

            Console.ReadKey();

        }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
          
            Console.WriteLine("Формирование запроса в режиме ЛЕНИВОЙ загрузки");
            var context = new PhoneStoreEntities();

            // Code-First поумолчанию: true, 
            // DB/ModelFirst - смотреть свойства файла EDMX

            context.Configuration.LazyLoadingEnabled = true; 


            var query = from user in context.Users
                        select user;
            Console.WriteLine(query);
            
            var usersList = query.ToList();

            foreach (var user in usersList)
            {
                // На каждой итерации обращение к БД!!!!
                if (user.UsersInfo != null )
                    Console.WriteLine(user.UsersInfo.FirstName);
            }


            Console.ReadLine();
            Console.Clear();


            Console.WriteLine("Формирование запроса в режиме ЯВНОЙ загрузки");
         
            context.Configuration.LazyLoadingEnabled = false;

            var query2 = from uset in context.Users.Include("UsersInfo")
                         select uset;

            Console.WriteLine(query2);
            var usersList2 = query2.ToList();
            foreach (var user in usersList2)
            {
                //Нет запросов к БД!!!
                Console.WriteLine(user.UsersInfo.LastName);
            }


            Console.ReadLine();
            Console.Clear();
            Console.WriteLine("Формирование запроса в режиме СТРОГОЙ загрузки");

          
            context.Configuration.LazyLoadingEnabled = false;

             var query3 = from user in context.Users
                         select user;
        
            Console.WriteLine(query3);
            var userList3 = query3.ToList();
            foreach (var user in userList3)
            {
                //Нет запросов к БД!!!
                Console.WriteLine(user.UsersInfo.LastName);
            }

            Console.ReadLine();

        }