日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Linq动态查询与模糊查询

發布時間:2023/12/9 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linq动态查询与模糊查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
IList<Department> mDepartmentLst = new List<Department>();IList<Employee> mEmployeeLst = new List<Employee>();mDepartmentLst.Add(new Department() { Id = 1, DeptNo = "001", DeptName = "開發部", IsBusiness = false });mDepartmentLst.Add(new Department() { Id = 2, DeptNo = "002", DeptName = "B2C 商務部", IsBusiness = true });mDepartmentLst.Add(new Department() { Id = 3, DeptNo = "003", DeptName = "B2B 商務部", IsBusiness = true });mDepartmentLst.Add(new Department() { Id = 4, DeptNo = "004", DeptName = "人事部", IsBusiness = false });mEmployeeLst.Add(new Employee() { Id = 1, DeptId = 1, EmpNo = "NO001", EmpName = "xushengtao" });mEmployeeLst.Add(new Employee() { Id = 1, DeptId = 1, EmpNo = "NO002", EmpName = "fankaijian" });mEmployeeLst.Add(new Employee() { Id = 1, DeptId = 4, EmpNo = "NO003", EmpName = "wangguoqin" });int mPageSize = 2;int mTotalCount = 0;Expression mWhereExpression; // Filter clause (查詢語句)// Get current request pagestring mCurPage = "1"; ;// Linq param which represent the search object (查詢對象代替符)ParameterExpression mLinqParam = Expression.Parameter(typeof(Department), "p"); //begin 處理“IsBusiness=true”//創建一個表示訪問屬性的 MemberExpressionMemberExpression memberExpression = Expression.Property(mLinqParam, typeof(Department).GetProperty("IsBusiness"));ConstantExpression constantExpression = Expression.Constant(false);mWhereExpression = Expression.Equal(memberExpression, constantExpression);//endstring mDeptName = "人事部";if (!String.IsNullOrEmpty(mDeptName)){mWhereExpression = Expression.And(mWhereExpression, Expression.Call(Expression.Property(mLinqParam,typeof(Department).GetProperty("DeptName")), typeof(String).GetMethod("Contains"),new Expression[] { Expression.Constant(mDeptName) }));}var mLambdaWhere = (Expression<Func<Department, bool>>)Expression.Lambda<Func<Department, bool>>(mWhereExpression,new ParameterExpression[] { mLinqParam });Func<Department, String> mLambdaOrder = p => p.DeptNo;mTotalCount = mDepartmentLst.AsQueryable().Where(mLambdaWhere).Count();var list = from o in mDepartmentLst.AsQueryable().Where(mLambdaWhere).OrderBy(mLambdaOrder).Skip((int.Parse(mCurPage) - 1) * mPageSize).Take(mPageSize)join c in mEmployeeLst on o.Id equals c.DeptIdselect new{o.DeptNo,o.DeptName,o.IsBusiness,c.DeptId,c.EmpNo,c.EmpName};

轉載于:https://www.cnblogs.com/xust/articles/2734064.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Linq动态查询与模糊查询的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。