這個orm已經用了好幾個月了基本完善了,現在來分享下他的操作方式
db.instance.insert
<
message
>
().add(o
=>
o.product, msg.product)
.add(o
=>
o.email, msg.email)
.add(o
=>
o.phone, msg.phone)
.add(o
=>
o.address, add.area
+add.detail)
.add(o
=>
o.content, msg.content)
.add(o
=>
o.ip, ip)
.add(o
=>
o.createat, datetime.now)
.execute();
db.instance.update
<
article
>
(o =>
o.articleid
==articleid)
.add(o
=>
o.columnid, columnid)
.add(o
=>
o.title, title)
.add(o
=>
o.content, content)
.add(o
=>
o.createat, datetime.now)
.execute()
>0;
db.instance.insert(o);
db.instance.update(o);
db.instance.delete
<
message
>
(o =>
o.messageid
==messageid);
db.instance.query
<
message
>
().orderbydescending(o
=>
o.createat);
db.instance.query
<
message
>
().where(o
=>
o.messageid
==id).tolist();
var q
=db.instance.query
<
product
>
().where(o
=>
o.serialnumber.contains(k)
||o.name.contains(k)
||o.zhname.contains(k)
||o.enname.contains(k)).orderbydescending(o
=>
o.createat);
q.getrange(pageindex, pagesize).tolist();
db.instance 是根據webconfig裡的第乙個connection得到的
也可以用new db(string providername, string connectionstring)來得到例項,理論上支援所有的資料庫,目前經過測試的有sqlserver,oledb,sqlite
本orm是基於表示式樹開發的,經測試構造sql效率非常高,支援where,in,distinct,select field,top,order,max,count,contains(like),insert,delete,update,getrange等,就不一一示例。全部使用引數化查詢
不過只支援單錶操作,因為我個人不喜歡把業務邏輯放在sql語句裡,支援事務(q.attach(dbtransaction tran))。
最後感謝老趙在園子裡寫了那麼多關於表示式樹的文章!
C 輕量級ORM 編寫思維
目標 降低研發人員門檻,提高效率,去除重複引用dll的工作,基礎配置由抽象工廠處理。基礎擴充套件 datatable 轉換為list 集合 型別 datatable public static listtolist this datatable dt where tresult class,new ...
(原創) C 輕量級AOP框架
c 中開源的aop框架aspectc 需要單獨編譯才能將切面的 織入到核心邏輯 中,感覺使用起來不方便,不能滿足快速開發要求。我希望只要實現方法攔截即可,能織入before 和after 操作就行,不追求動態織入。思路是這樣的,通過乙個包裝類,裡面定義before 和after 方法,和 運算子過載...
peewee 超輕量級ORM運算元據庫
多條刪除,返回值為刪除的條數 1 delete instance tusermission.delete where tusermission.mission code mission code execute 單條刪除 2 name tusermission.get user name zhang...