// 指定查詢出的列名
        private ActionResult SelectBySelect()
        {
            DbContext context = new EntityTestEntities3();

            var list = context.Set <UserInfoP>().Select(userInfo => userInfo);

            return(View(list));
        }
        // 使用指定的DBContext子類查詢
        private ActionResult SelectBySubDBContext()
        {
            EntityTestEntities3 context = new EntityTestEntities3();

            var list = context.UserInfoP;

            return(View(list));
        }
        // 使用LinQ方式查詢
        private ActionResult SelectByLinQ()
        {
            EntityTestEntities3 context = new EntityTestEntities3();

            var list = from user in context.UserInfoP
                       select user;

            return(View(list));
        }
        // 查詢指定的列
        private ActionResult SelectSingleColumn()
        {
            DbContext context = new EntityTestEntities3();

            var list = from userInfo in context.Set <UserInfoP>()
                       select new UserInfoPViewModel
            {
                UID = userInfo.Uid
            };

            return(View(list));
        }
        // 多條件查詢
        private ActionResult SelectByMultipleCondition()
        {
            DbContext context = new EntityTestEntities3();

            // 方法查詢
            //var list = context.Set<UserInfoP>().Where(u => u.Uid >= 2).Where(u => u.UName.Length > 3).Select(u => u);

            // linQ查詢
            var list = from userinfo in context.Set <UserInfoP>()
                       where userinfo.Uid >= 2 && userinfo.UName.Length > 3
                       select userinfo;

            return(View(list));
        }
        // 單條件查詢
        private ActionResult SelectBySimpleCondition()
        {
            DbContext context = new EntityTestEntities3();

            // 方法查詢
            //var list = context.Set<UserInfoP>().Where(userinfo => userinfo.Uid > 2).Select(u => u);

            // linQ查詢語句
            var list = from userinfo in context.Set <UserInfoP>()
                       where userinfo.Uid > 2
                       select userinfo;

            return(View(list));
        }
        private ActionResult SelectByInnerJoin()
        {
            DbContext context = new EntityTestEntities3();

            DbSet <NewsInfo> newsInfoSet = context.Set <NewsInfo>();
            DbSet <NewsType> newsTypeSet = context.Set <NewsType>();

            // 1. 第一種查詢,將資料直接丟到cshtml中,藉由導航屬性選出相對應的資料
            var list = from newsInfo in newsInfoSet
                       select newsInfo;


            // 2. 第二種查詢,在cs代碼中將資料拿出來,構建一個新模型

            // 這種查詢方式會導致無法查詢,因為newsInfo.NewsType只有一個,並不可以枚舉
            //var list2 = from newsInfo in newsInfoSet
            //            from nType in newsInfo.NewsType
            //            select new
            //            {
            //                nid = newsInfo.nid,
            //                nTitle = newsInfo.nTitle,
            //                nType = nType
            //            };

            var list2 = from newsType in newsTypeSet
                        from newsInfo in newsType.NewsInfo
                        select new NewsInfoViewModel
            {
                nid      = newsInfo.nid,
                nTitle   = newsInfo.nTitle,
                newsType = newsType.tTitle
            };

            // 3. 直接利用newsInfo的導航屬性
            var list3 = from newsInfo in newsInfoSet
                        select new NewsInfoViewModel
            {
                nid      = newsInfo.nid,
                nTitle   = newsInfo.nTitle,
                newsType = newsInfo.NewsType.tTitle
            };


            return(View(list3));
        }