Repository 簡化實現多條件查詢

2021-10-21 18:01:26 字數 1376 閱讀 3508

repository 在做查詢的時候,如果查c#教程詢條件多的話,linq查詢表示式會寫的很複雜,比如:

1 public iqueryable get(

intid

, string name, string address, status? status, datetime createtime)28

if(!string.isnullorwhitespace(name))9

12if

(!string.isnullorwhitespace(address))13

16if

(status.hasvalue)

1720

if(createtime != null)

2124//.

..2526

return query;

27}

可以看到,查詢條件多的話,我們會寫很多的if判斷,**看起來很不美觀,解決方式使用expression>,示例**:

using system.linq.expressions;

public iqueryable get(

intid

, string name, string address, status? status, datetime createtime)

{ expressionbool

>> studentfunc = x =

>(id

==0|| x.id ==id)

&&(string.isnullorwhitespace(name)

|| x.name.contains(name))&

&(string.isnullorwhitespace(address)

|| x.address.contains(address))&

&(!status.hasvalue |

| x.status == status.value)&&

(createtime == null |

| x.createtime <= createtime)

;return _entities.where(studentfunc)

;

生成示例sql**:

1 selectx.id,x.name,x.address,x.status,x.create_time

2 fromstudentsasx出處:

Repository 簡化實現多條件查詢

repository 在做查詢的時候,如果查詢條件多的話,linq查詢表示式會寫的很複雜,比如 public iqueryableget int id,string name,string address,status?status,datetime createtime if string.isn...

71 簡化路徑 python實現

題目描述 以 unix 風格給出乙個檔案的絕對路徑,你需要簡化它。或者換句話說,將其轉換為規範路徑。在 unix 風格的檔案系統中,乙個點 表示當前目錄本身 此外,兩個點 表示將目錄切換到上一級 指向父目錄 兩者都可以是複雜相對路徑的組成部分。請注意,返回的規範路徑必須始終以斜槓 開頭,並且兩個目錄...

Linux ls 命令實現(簡化版)

在學習linux系統程式設計的時候,實現了ls命令的簡化版本。實現的功能如下 1.每種檔案型別有自己的顏色 普通檔案,d 目錄檔案,l 鏈結檔案,c 字元裝置檔案,b 快裝置檔案,p 管道檔案,s socket檔案。共7種 2.支援的引數有 hali a 顯示隱藏檔案,i 顯示inode節點號,l ...