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...