1. 程式人生 > >EF下lambda與linq查詢&&擴展方法

EF下lambda與linq查詢&&擴展方法

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.UserInfo
                               
where 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查詢&&擴展方法