原創的輕量級ORM,支援Lambda進行資料庫操作

2022-03-20 18:35:30 字數 2032 閱讀 7922

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