MicroOrm.Net(6) Table.Query() - Join & Order By
MicroOrm.Net主页:
http://code.google.com/p/micro-orm-net/
MicroOrm.Net系列随便目录总览:
http://www.cnblogs.com/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) |
同样道理,也可以执行多次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) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!