惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
GbyAI
GbyAI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 三生石上(FineUI控件)
美团技术团队
Last Week in AI
Last Week in AI
WordPress大学
WordPress大学
L
LangChain Blog
雷峰网
雷峰网
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 叶小钗
Engineering at Meta
Engineering at Meta
腾讯CDC
Recent Announcements
Recent Announcements
The Register - Security
The Register - Security
有赞技术团队
有赞技术团队
Blog — PlanetScale
Blog — PlanetScale
博客园 - Franky
博客园 - 司徒正美
The Cloudflare Blog
Google DeepMind News
Google DeepMind News
T
Tailwind CSS Blog
C
Check Point Blog
小众软件
小众软件
V
Visual Studio Blog
V
V2EX
F
Full Disclosure
J
Java Code Geeks
MongoDB | Blog
MongoDB | Blog
罗磊的独立博客
人人都是产品经理
人人都是产品经理
量子位
Apple Machine Learning Research
Apple Machine Learning Research
F
Fortinet All Blogs
Microsoft Security Blog
Microsoft Security Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 【当耐特】
博客园_首页
Y
Y Combinator Blog
N
Netflix TechBlog - Medium
酷 壳 – CoolShell
酷 壳 – CoolShell
Stack Overflow Blog
Stack Overflow Blog
Recorded Future
Recorded Future
G
Google Developers Blog
Vercel News
Vercel News
大猫的无限游戏
大猫的无限游戏
Microsoft Azure Blog
Microsoft Azure Blog
U
Unit 42
爱范儿
爱范儿
Jina AI
Jina AI

博客园 - mapserver

MicroOrm.Net和现有ORM产品的对比 MicroOrm.Net(8) Table.Query() - Distinct、Skip & Take MicroOrm.Net(7) Table.Query() - Group By & Having MicroOrm.Net(5) Table.Query() - Select MicroOrm.Net(4) Table.Query() - Where MicroOrm.Net(3) Database、Table、Column、Expression、Math&MathE MicroOrm.Net(2) 基础及动态特性 MicroOrm.Net(1) 总览 Asp.net服务器控件编程(6) ViewState(二)——ViewState用法和IStateManager Asp.net服务器控件编程(5) 复杂属性 Asp.net服务器控件编程(4) 呈现 Asp.net服务器控件编程(3) ViewState(一)——asp.net控件的精华之一 Asp.net服务器控件编程(2) 来做个热身运动吧 Asp.net服务器控件编程(1) 开篇、基础 Asp.net服务器控件编程 总览 TextDataSource(3) — 请把我的数据更新回去 TextDataSource(2) — 翠花,上“数据” TextDataSource(1) — DataSourceControl内幕 .NET组件编程(10) 补充 ISupportInitialize
MicroOrm.Net(6) Table.Query() - Join & Order By
mapserver · 2012-04-11 · via 博客园 - mapserver

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)