DMSFrame 之簡單用法(二)

2022-02-23 09:26:53 字數 2748 閱讀 5129

上次說了下dmsframe的一些查詢方式,之前也有好多朋友問了下這個orm與ef有什麼樣的區別。

要論區別,我自己也總結了幾點。如果有其它朋友知道的,可以回覆補充下。

1.不需要編輯的時候需要再次查詢資料庫,可以直接根據條件去更新。

2.支援分布式資料庫,可以在實體上定義資料庫,甚至可以在**上定義資料庫。這點好像ef是做不到的

3.支援多種資料庫,只需要修改配置就好。

繼續我們開發之旅吧。。

var user = dms.create()

.orderby(q =>q.orderby(q.userid))

.pager(

1, 10

); console.writeline(user.getresultsql());

解析如下:

select

top10[t0

].[userid

],[t0

].[username

],[t0

].[truename

],[t0

].[userpwd

],[t0

].[deptid

],[t0

].[deptname

],[t0

].[usercode

],[t0

].[companyemail

],[t0

].[mobilenum

],[t0

].[statusflag

],[t0

].[lastlogintime

],[t0

].[logintimes

],[t0

].[lastloginip

],[t0

].[resetpwdflag

],[t0

].[createtime

],[t0

].[createuser

],[t0

].[deleteflag

],[t0

].[deletetime

],[t0

].[deleteuser

],[t0

].[updateuser

],[t0

].[updatetime

],[t0

].[remark

]from

[adm_user]as

[t0]with

(nolock)

orderby[

t0].[

userid

]

明眼一看就知道是分頁查詢,值得注意的是分布查詢是必須要有orderby欄位,

orderby(q =>q.orderby(q.userid)),注意裡面還有乙個orderby,這也是和ef不同的地方,再看看第二頁的情況。

var

user

= dms.create

() .orderby(q

=> q.orderby(q.userid.desc

(), q.createtime))

.pager(

2, 10

) .

select(q =>

q.columns(q.userid, q.usercode));

console.writeline(

user.getresultsql());

解析如下:

select

[userid

],[usercode

]from(select

top20 row_number() over(orderby[

t0].[

userid

]desc ,[

t0].[

createtime

]) rn,[

t0].[

userid

],[t0

].[usercode

]from

[adm_user]as

[t0]with(nolock)) [t0]

where rn>

10

第二頁查詢的方式會自動加排序字段進行分頁查詢的。在查詢的時候也會有其它業務需求,只查詢我們需要的東西。怎麼樣,是不是感覺原來查詢也可以這麼so easy!!

相信這裡你也就明白為什麼分頁查詢要排序欄位了吧。。

值得說明的事:查詢的返回結果可以這幾種, toresult() | 返回datatable結果;tolist() | 返回類列表結果;toconditionresult(1) | 返回分頁結果(帶總項數);

同時還可以返回任意的類列表結果,tolist(); t 可以是任意的class,規則就是與資料庫查詢出來的欄位名稱要一致,預設是忽略大小寫的,如果需要區分,可以tolist裡面加上引數資訊

var

user

= dms.create

() .groupby(q

=>

q.groupby(q.userid, q.username))

.select(q =>

new );

console.writeline(

user.getresultsql());

新上傳dmsframe版本檔案:

DMSFrame 之簡單用法(一)

1.dmsframe是乙個完整的orm框架,框架相對來說也比成熟了。使用上有些地方還是比較方便的。dll檔案大約300k左右,但卻可以支援各種方式的查詢,完全的linq化的方式書寫 更有利於維護。2.框架完全支援除錯時生成的sql語句跟蹤,你可以很清晰地看出是 的寫法出了問題。3.框架附加了完全支援...

Git簡單用法 二

接上次git簡單用法 一 跳轉 二主要講關於git的分支用法和git日誌 分支的主要用於多人開發,可以讓開發人員在主線 master分支 之外進行 提交,同時又不會影響主線。比如我負責專案的乙個功能模組,我就建立乙個分支,把這部分 提交到這個分支中,而其它模組的同事 仍可以利用主線開發,我的提交不會...

mysql的簡單用法 mysql簡單用法

刪除使用者 drop user jack drop比delete刪除的優勢在於drop可以刪除使用者的許可權,更加徹底 更改使用者名稱 rename user jack to jacknew 使用者的都存在與user表中,更改名稱,許可權不變 更改使用者密碼 update mysql.user se...