MicroOrm.Net(6) Table.Query() - Join & Order By
MicroOrm.Net主頁:
http://code.google.com/p/micro-orm-net/
MicroOrm.Net系列隨便目錄總覽:
http://www.rzrgm.cn/mapserver/archive/2012/04/07/2436129.html
本文我們來演示MicroOrm.Net查詢的Join部分,請看Join方法的api文檔:
Query Join(Table joinTable, Expression on) Query InnerJoin(Table joinTable, Expression on) Query LeftJoin(Table joinTable, Expression on) Query LeftOuterJoin(Table joinTable, Expression on) Query RightJoin(Table joinTable, Expression on) Query RightOuterJoin(Table joinTable, Expression on)
目前Join方法都需要手動傳Expression參數,也就是關聯表和被關聯表之間的關聯條件,雖然在DB可以設置表和表之間外鍵約束,而且也能通過代碼抓取到外鍵約束,但在MicroOrm.Net查詢Join,還是需要手動傳入關聯條件。
上面api中的Join方法等同于InnerJoin。
簡單代碼如下:
db.OrderDetail.Query()
.Join(db.Order, db.Order.OrderId == db.OrderDetail.OrderId)
如果關聯條件不止一個時:
db.Table1.Query()
.Join(db.Table2, db.Table1.Id1 == db.Table2.Id1 && db.Table1.Id2 == db.Table2.Id2)
同樣道理,也可以執(zhí)行多次Join方法,關聯多個表:
db.OrderDetail.Query()
.Join(db.Order, db.Order.OrderId == db.OrderDetail.OrderId)
.Join(db.Product, db.Product.ProductId == db.OrderDetail.ProductId)
.RightJoin(db.Customer, db.Customer.CustomerId == db.Order.CustomerId)
上面我們演示了Join,下面來看看Order By,也先看Order By的api:
Query OrderBy(params Column[] columns) Query OrderByAsc(params Column[] columns Query OrderByDesc(params Column[] columns)
上面api里的OrderBy方法等同于OrderByAsc方法
請看下面的代碼示例:
db.OrderDetil.Query()
.Join(db.Order, db.Order.OrderId == db.OrderDetail.OrderId)
.OrderBy(db.Order.CustomerId)
.OrderByDesc(db.OrderDetail.Qty)
浙公網安備 33010602011771號