// 指定查詢出的列名 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)); }