動態生成FreeSql的過濾表示式

2021-10-01 17:04:26 字數 1486 閱讀 7826

1、主要是做乙個通用的過濾器,如果泛型實體物件中存在成員,則構建過濾器。

/// /// 過濾器

///

///

public class freesqlfilter

var param_obj = expression.parameter(typeof(t));

var left = expression.property(param_obj, p);

expression constantvalue = expression.constant(value);

// 型別轉換

expression right = expression.convert(constantvalue, p.propertytype);

var body = expression.equal(left, right);

var result = expression.lambda>(body, param_obj);

return result;

} /// /// 包含過濾器

///

///

///

///

///

public static expression> filterconstain(string membername, listvalue)

var param_obj = expression.parameter(typeof(t));

var propitem = expression.property(param_obj, p);

// 型別轉換

expression arg0 = expression.convert(propitem, typeof(t1));

var containsmethod = typeof(list).getmethod("contains", new type );

var listvalue = system.linq.expressions.expression.constant(value);

var body = methodcallexpression.call(listvalue, containsmethod, arg0);

var result = expression.lambda>(body, param_obj);

return result;

}}

2、呼叫

/// /// 忽略的實體

///

public static listignoreentity = new list;

...// 設定過濾器

expression> filter = null;

if (!ignoreentity.contains(typeof(t).name)));

}this.selectsql = freesql.queryable().where(filter);

Oracle動態生成查詢交叉表

表結構 序號字段 中文名稱 型別 說 明 1 reportid number 4 報告編號 2 recordno number 記錄號 3 fieldno number 2 字段編號 4 datum varchar 200 值 reportid recordno fieldno datum 1 1 ...

根據Django Model動態生成資料表的方法

當定義好django model後,一般可以在初始化呼叫syncdb方法來自動在資料庫裡面生成相應的表。那麼如果想在後續階段想根據根據django model動態生成資料表,該怎麼辦呢?要生成資料庫表,就得先根據model的定義先生成sql語句,然後在資料庫裡面執行。並且由於要支援不同的資料庫,所生...

動態生成陣列 PHP生成器動態生成內容的陣列

每日17點準時技術乾貨分享 定義 1.生成器 動態生成內容的陣列 用到值的時候才去生產。2.搭配使用 關鍵字 yield foreach 過程 1.作為生成器的方法相當於定義了乙個陣列 2.生成器中的 yield,每次出現相當於定義了乙個陣列 現的值 3.foreach 會遍歷生成器中所有的 yie...