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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

linq to sql的多条件动态查询(下)

發布時間:2025/4/16 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linq to sql的多条件动态查询(下) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

借助老外寫的一個擴展表達式的類,可以把上篇中的代碼寫得更優雅

這是PredicateBuilder的源文件

?public?static?class?PredicateBuilder
????
...{
??????
public?static?Expression<Func<T,?bool>>?True<T>?()??...{?return?f?=>?true;??}
??????
public?static?Expression<Func<T,?bool>>?False<T>?()?...{?return?f?=>?false;?}
?????
??????
public?static?Expression<Func<T,?bool>>?Or<T>?(this?Expression<Func<T,?bool>>?expr1,
??????????????????????????????????????????????????????????Expression
<Func<T,?bool>>?expr2)
??????
...{
????????var?invokedExpr?
=?Expression.Invoke?(expr2,?expr1.Parameters.Cast<Expression>?());
????????
return?Expression.Lambda<Func<T,?bool>>
??????????????(Expression.Or?(expr1.Body,?invokedExpr),?expr1.Parameters);
??????}

?????
??????
public?static?Expression<Func<T,?bool>>?And<T>?(this?Expression<Func<T,?bool>>?expr1,
???????????????????????????????????????????????????????????Expression
<Func<T,?bool>>?expr2)
??????
...{
????????var?invokedExpr?
=?Expression.Invoke?(expr2,?expr1.Parameters.Cast<Expression>?());
????????
return?Expression.Lambda<Func<T,?bool>>
??????????????(Expression.And?(expr1.Body,?invokedExpr),?expr1.Parameters);
??????}

????}

?

下面是使用示例 :

?

List<Product>?GetProductsByAND(params?string[]?keywords)?
????
...{
????????DBDataContext?db?
=?new?DBDataContext(Database.ConnectionString);
????????IQueryable
<Product>?query?=?db.Products;
????????
foreach?(string?keyword?in?keywords)
????????
...{
????????????
string?temp?=?keyword;
????????????query?
=?query.Where(p?=>?p.Description.Contains(temp));
????????}

????????
//翻譯后的sql語句:
????????
//Select?[t0].[ID],?[t0].[Name],?[t0].[Description]
????????
//FROM?[dbo].[Product]?AS?[t0]
????????
//Where?([t0].[Description]?LIKE?'%手機%')?AND?([t0].[Description]?LIKE?'%6111%')
????????return?query.ToList();???
????}



????List
<Product>?GetProductsByOR(params?string[]?keywords)
????
...{
????????DBDataContext?db?
=?new?DBDataContext(Database.ConnectionString);
????????var?predicate?
=?PredicateBuilder.False<Product>();
????????
foreach?(string?keyword?in?keywords)
????????
...{
????????????
string?temp?=?keyword;
????????????predicate?
=?predicate.Or(p?=>?p.Description.Contains(temp));
????????}

????????var?query?
=?db.Products.Where(predicate);
????????
//翻譯后的sql語句:
????????
//Select?[t0].[ID],?[t0].[Name],?[t0].[Description]
????????
//FROM?[dbo].[Product]?AS?[t0]
????????
//Where?([t0].[Description]?LIKE?'%6111%')?OR?([t0].[Description]?LIKE?'%2350%')
????????return?query.ToList();
????}


????
void?ShowData()?
????
...{
????????
//var?_products?=?GetProductsByOR("6111",?"2350");
????????
//Repeater1.DataSource?=?_products;
????????
//Repeater1.DataBind();

????????var?predicate?
=?PredicateBuilder.True<Product>();

????????
string?_name?=?"6111";
????????
if?(!string.IsNullOrEmpty(_name))?
????????
...{
????????????predicate?
=?predicate.And(p?=>?p.Name.Contains(_name));
????????}


????????
string?_description?=?"長虹";
????????
if?(!string.IsNullOrEmpty(_description))?
????????
...{
????????????predicate?
=?predicate.And(p?=>?p.Description.Contains(_description));
????????}


????????
using?(DBDataContext?db?=?new?DBDataContext(Database.ConnectionString))
????????
...{
????????????var?_Products?
=?db.Products.Where(predicate);
????????????Repeater1.DataSource?
=?_Products;
????????????Repeater1.DataBind();
????????}


????}

?




轉載于:https://www.cnblogs.com/yjmyzz/archive/2008/03/25/1122135.html

總結

以上是生活随笔為你收集整理的linq to sql的多条件动态查询(下)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 亚洲国产成人自拍 | 久久人人爽 | 精品九九九 | 天天爱av | 欧美黑人精品一区二区 | 国产婷婷一区二区三区 | 一本大道熟女人妻中文字幕在线 | 欧美激情一区二区三区蜜桃视频 | 欧美做爰xxxⅹ性欧美大片 | 欧美精品videos | 欧美精产国品一二三区 | 嫩嫩av| 亚洲精品99 | 小情侣高清国产在线播放 | 国产一级做a爰片久久毛片男 | 欧美日本一道本 | 亚洲一区无 | 欧美特级黄色片 | 欧美视频在线观看一区二区三区 | 四季av一区二区夜夜嗨 | 亚洲人成在线观看 | 欧美美女一区二区三区 | 毛片无码一区二区三区a片视频 | 久久久精品美女 | 又黄又爽一区二区三区 | 美女福利视频 | 亚洲情欲网 | 欧美综合在线视频 | 亚洲美女屁股眼交 | 在线观看福利网站 | k8yy毛片 | 国产熟妇一区二区三区aⅴ网站 | 黄色一级在线播放 | 少妇一级淫片aaaaaaa | 97超碰97| 淫辱的世界(调教sm)by | 亚日韩| 在线亚洲自拍 | 欧洲亚洲女同hd | 久久久久在线 | 91一区二区| 亚洲女人毛片 | 这里只有精品999 | 秋霞影院午夜丰满少妇在线视频 | 日韩欧美h| 久久日韩精品 | 久久精品香蕉视频 | 色婷婷电影网 | 青青青手机视频 | 精品国产乱码久久久久久1区2区 | 亚洲大尺度视频 | 这里精品 | 久久久国产精品一区二区三区 | 亚洲国产无码精品 | 日韩在线影院 | 亚洲成人看片 | 亚洲成人精品久久久 | 亚洲一区二区免费视频 | 久久久精品一区二区三区 | 黄色免费视频观看 | 九月婷婷色 | 中文字幕成人在线 | 日韩精品一区二区亚洲av观看 | 亚洲黄色在线网站 | 一卡二卡三卡四卡在线 | 你懂的在线观看网址 | av在线免费播放网站 | 亚洲网视频 | 久久久免费精品视频 | 一区二区亚洲精品 | 色视频网站在线观看 | 国产精品后入内射日本在线观看 | 深夜在线 | 西西444www大胆无视频 | 永久免费AV无码网站韩国毛片 | 午夜影院福利 | 99在线精品免费视频 | 波多av在线 | 97黄色网 | 91免费短视频 | 欧美特级黄色片 | 欧美久久久久久久久久久久 | 天天色棕合合合合合合合 | 第一福利在线视频 | 97久久精品人人澡人人爽 | 中文字幕88 | 国产一二三四五区 | 欧美激情视频网 | 久久不卡免费视频 | 99综合视频 | 成人福利免费视频 | 国产精品九九 | 电影91久久久| 白俄罗斯毛片 | 红桃av | 在线成人一区 | 69re视频| 人妻丰满熟妇av无码久久洗澡 | 日韩特黄毛片 |