EF下lambda與linq查詢&&擴展方法
阿新 • • 發佈:2018-09-12
ring 數據 col sta skip tst resp () class
1. linq查詢數據
WebTestDBEntities db = new WebTestDBEntities();
1.1 linq查詢所有列數據
var userInfoList = from u in db.UserInfo where u.ID == 10 select u;
1.2 linq查詢部分列數據
var userInfoList = from u in db.UserInfowhere u.ID >= 1 select new { Name = u.UserName, Pwd = u.UserPass }; foreach (var userInfo in userInfoList) { Response.Write(userInfo.Name + ":" + userInfo.Pwd + "<br/>"); }
2. lambda查詢數據
2.1 lambda查詢所有列數據
var userInfoList = db.UserInfo.Where<UserInfo>(u => u.ID > 0); foreach (var userInfo in userInfoList) { Response.Write(userInfo.UserName + ":" + userInfo.UserPass + "<br/>"); }
2.2 lambda查詢部分列數據
var userInfoList = db.UserInfo.Where<UserInfo>(u => u.ID > 0).Select(a => new { Name = a.UserName, Pwd = a.UserPass }); foreach (var userInfo in userInfoList) { Response.Write(userInfo.Name + ":" + userInfo.Pwd + "<br/>"); }
3. 排序
var userInfoList = db.UserInfo.Where<UserInfo>(c => true).OrderBy<UserInfo, int>(u => u.ID).Select(u => new { Name = u.UserName,Email=u.Email });//升序排序 var userInfoList = db.UserInfo.Where<UserInfo>(c => true).OrderByDescending<UserInfo, int>(u => u.ID).Select(u => new { Name = u.UserName, Email = u.Email });//降序排序 var userInfoList = (from u in db.UserInfo select u).OrderByDescending<UserInfo, int>(c => c.ID).Select(u => new { Name = u.UserName, Email = u.Email });
4. 分頁查詢示例:
int pageIndex = 2; int pageSize = 2; var userInfoList = db.UserInfo.Where<UserInfo>(c => true).OrderBy<UserInfo, int>(u => u.ID).Skip<UserInfo>((pageIndex - 1) * pageSize).Take<UserInfo>(pageSize); foreach (var userInfo in userInfoList) { Response.Write(userInfo.UserName + "<br/>"); }
5、擴展方法
語法要求:
- 擴展方法所在的類必須是
static
- 擴展方法必須是一個靜態方法
- 擴展方法的第一個參數,必須用
this
關鍵字修飾,而且類型是所擴展的類型 -
public static string ShowMsg(this string ext, string msg) { return string.Format("<span style=‘color:red‘>{0}</span>", msg); }
string tempStr = string.Empty; string resultStr = tempStr.ShowMsg("擴展方法示例"); Response.Write(resultStr);
EF下lambda與linq查詢&&擴展方法