c 泛型應用範例

2021-07-24 22:58:36 字數 3850 閱讀 1755

//---------queryable,擴充套件函式查詢---------//

//---------queryable,擴充套件函式查詢---------//

//針對單錶或者檢視查詢

//查詢所有

var student = db.queryable().tolist();

var studentdynamic = db.queryable().todynamic();

var studentjson = db.queryable().tojson();

//查詢單條

var single = db.queryable().single(c => c.id == 1);

//查詢單條沒有記錄返回空物件

var single2 = db.queryable().where(c => c.id == 1).singleordefault();

//查詢第一條

var first = db.queryable().where(c => c.id == 1).first();

var first2 = db.queryable().where(c => c.id == 1).firstordefault();

//取10-20條

var page1 = db.queryable().where(c => c.id > 10).orderby(it => it.id).skip(10).take(20).tolist();

//上一句的簡化寫法,同樣取10-20條

var page2 = db.queryable().where(c => c.id > 10).orderby(it => it.id).topagelist(2, 10);

//查詢條數

var count = db.queryable().where(c => c.id > 10).count();

//從第2條開始以後取所有

var skip = db.queryable().where(c => c.id > 10).orderby(it => it.id).skip(2).tolist();

//取前2條

var take = db.queryable().where(c => c.id > 10).orderby(it => it.id).take(2).tolist();

// not like

string conval = "a";

var notlike = db.queryable().where(c => !c.name.contains(conval.tostring())).tolist();

//like

conval = "三";

var like = db.queryable().where(c => c.name.contains(conval)).tolist();

// 可以在拉姆達使用 tostring和 convert,比ef出色的地方

var convert1 = db.queryable().where(c => c.name == "a".tostring()).tolist();

var convert2 = db.queryable().where(c => c.id == convert.toint32("1")).tolist();//

var convert3 = db.queryable().where(c => datetime.now > convert.todatetime("2015-1-1")).tolist();

var convert4 = db.queryable().where(c => datetime.now > datetime.now).tolist();

//支援字串where 讓你解決,更複雜的查詢

var student12 = db.queryable().where(c => "a" == "a").where("id>100").tolist();

var student13 = db.queryable().where(c => "a" == "a").where("id>100 and id in( select 1)").tolist();

//存在記錄反回true,則否返回false

bool isany100 = db.queryable().any(c => c.id == 100);

bool isany1 = db.queryable().any(c => c.id == 1);

//獲取最大id

object maxid = db.queryable().max(it => it.id);

int maxid1 = db.queryable().max(it => it.id).objtoint();//拉姆達

int maxid2 = db.queryable().max("id"); //字串寫法

//獲取最小

int minid1 = db.queryable().where(c => c.id > 0).min(it => it.id).objtoint();//拉姆達

int minid2 = db.queryable().where(c => c.id > 0).min("id");//字串寫法

//order by

var orderlist = db.queryable().orderby("id desc,name asc").tolist();//字串支援多個排序

//可以多個order by表達示

var order2list = db.queryable().orderby(it=>it.name).orderby(it => it.id, orderbytype.desc).tolist(); // order by name as ,order by id desc

//in

var intarray=new ;

var intlist = intarray.tolist();

var list0 = db.queryable().in(it => it.id, 1,2,3).tolist();

var list1 = db.queryable().in(it=>it.id, intarray).tolist();

var list2 = db.queryable().in("id", intarray).tolist();

var list3 = db.queryable().in(it => it.id, intlist).tolist();

var list4 = db.queryable().in("id", intlist).tolist();

//分組查詢

var list7 = db.queryable().where(c => c.id < 20).groupby(it => it.***).select("***,count=count(*)").todynamic();

var list8 = db.queryable().where(c => c.id < 20).groupby(it => it.***).groupby(it=>it.id).select("id,***,count=count(*)").todynamic();

listlist9 = db.queryable().where(c => c.id < 20).groupby(it => it.***).select("***,count=count(*)").tolist();

listlist10 = db.queryable().where(c => c.id < 20).groupby("***").select("***,count=count(*)").tolist();

//select ***,count=count(*) from student where 1=1 and (id < 20) group by *** --生成結果

泛型應用範例

定義乙個person類,並為之定義 和基本資訊等屬性。package book inte ce info 定義 類,實現info介面 class contact implements info public string getaddress public void setaddress strin...

泛型操作範例

表示乙個人的資訊 基本資訊 肯定要先定義乙個介面,只有實現了介面的類,才能表示出人的資訊。定義乙個介面,沒有任何方法,稱為標識介面,之後定義人的類,人的類中只要是此介面的子類,就可以表示人的資訊。1,首先 定義乙個沒有內容的介面,即 標識介面,讓具體資訊子類來實現此介面 去表示人的資訊 2,定義子類...

泛型操作範例

本章目標 加深泛型的理解 掌握標識介面的定義 題目要求 使用者在設計類的時候往往會使用類的關聯關係,例如,乙個人中可以定義乙個資訊的屬性,但是乙個人可能有各種各樣的資訊 例如 基本資訊等 所以此資訊屬性的型別就可以通過泛型進行宣告,之後只要設計相應的資訊類即可。定義標識介面 資訊 但是需要注意的是,...