Subsonic中的inner join操作

2021-05-24 06:12:19 字數 1310 閱讀 2731

有如下兩表,rule跟,rulegroup, rulegroup是 rule表與group表的關聯表(rule,跟 group為多對多關係),應此,rulegroup到rule應該為 n:1(多對一)反之為一對多關係,現在對兩張表做innerjion操作,使用subsonic可以有如下兩種寫法.

注意,為保證生成正確的sql語句,在subsoinc中需要交叉放置兩張表的位置,即from

.innerjoin(yyy,***)...

其中***,yyy表示rulegroup,或rule表. 如果不是交叉放置那麼將生成 *** innerjoin *** on ***.nn=yy.nn 這樣的sql語句

**如下:

sqlquery q = new select("name", "ruleid").from().innerjoin(kwstool.dal.rule.idcolumn, rulegroup.ruleidcolumn).where("groupid").isequalto(1);

response.write(q.tostring() + "

");

q = new select("name", "ruleid").from

rule>().innerjoin(

rulegroup.ruleidcolumn, kwstool.dal.

rule.idcolumn).where("groupid").isequalto(1);

response.write(q.tostring());

輸出結果:

1:select name, [dbo].[rulegroup].[ruleid] from [dbo].[rulegroup] inner join [dbo].[rule] on [dbo].[rulegroup].[ruleid] = [dbo].[rule].[id] where [dbo].[rulegroup].[groupid] = @groupid0

2:select [dbo].[rule].[name], ruleid from [dbo].[rule] inner join [dbo].[rulegroup] on [dbo].[rule].[id] = [dbo].[rulegroup].[ruleid] where groupid = @groupid0

另外要說的是.net3.x 的linq to sql  中的 .dbml檔案中會將資料庫中的一對多關係(如 rule 到 rulegroup) 會轉變成"類圖"中聚合關係,表示為:rule <>--------------->rulegroup,即乙個rule中含有多個rulegroup, 需要注意的是箭頭的方向跟資料庫er圖(資料庫模型圖)剛好相反.

SubSonic配置與使用的學習與報錯

最近公司的專案需要用subsonic來做。所以作為菜鳥的我又要開始subsonic的學習之旅了。1 首先是webconfig的配置 a 在 中新增資訊 subsonicservice type subsonic.subsonicsection,subsonic b 在中新增connectionstr...

SubSonic2 2框架的使用方法和配置說明

網上.net orm框架也不少,但是我感覺這個框架配置很簡單的,前幾年貌似用的人很多,現在好像用得比較少了,隨著它官方的公升級現在已經到3.0了,並且採用t4 模板生成的方式,量好像減少了。不過我感覺2.2還是比較穩定,前些天有問這個框架怎麼使用,在次讓我整理了一下。廢話就不說了,先看看怎麼配置使用...

Python中的descriptor中的一點疑問

在我的印象中,類中的函式是可以有兩種呼叫方式的,如下 class b def func self return 10 b b b.func b.func b 於是,在之前研究descriptor的時候,我就有了幾點困惑 我將 更換成了如下兩個版本 版本1 import time class lazy...