上次說了下dmsframe的一些查詢方式,之前也有好多朋友問了下這個orm與ef有什麼樣的區別。
要論區別,我自己也總結了幾點。如果有其它朋友知道的,可以回覆補充下。
1.不需要編輯的時候需要再次查詢資料庫,可以直接根據條件去更新。
2.支援分布式資料庫,可以在實體上定義資料庫,甚至可以在**上定義資料庫。這點好像ef是做不到的
3.支援多種資料庫,只需要修改配置就好。
繼續我們開發之旅吧。。
var user = dms.create().orderby(q =>q.orderby(q.userid))
.pager(
1, 10
); console.writeline(user.getresultsql());
解析如下:
selecttop10[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不同的地方,再看看第二頁的情況。
varuser
= 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裡面加上引數資訊
varuser
= 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...