讓我們開啟資料庫無linq、零sql時代
moon.orm 5.0總論
第一部分mql
moon.orm 5.0系列文章
publicstatic
voidmain(string args)
}console.write("press any key to continue . . . ");
console.readkey(true);
}mql
是moon.orm 5.0中的全新設計,目的在於讓我們的資料庫開發打造為無linq、零sql.它全面貼近標準sql,噪音低.
linq
在資料庫開發過程中的存在,對於開發人員而言本質上就是智慧型感知.或許您不這麼認為,會說:物件導向、匿名型別.
--我想說的是,物件導向帶來的好處真不明顯,乙個託詞,怎麼不說說linq的弱勢呢?可以返回匿名型別,但你直接返給mvc的檢視試試,何況還有更偉大的東西.moon.orm之前的版本已經實現了.
mql的構思廢了我很多時間,我想值得.
2.1、連線查詢
varm1=classset.select(classset.classid,classset.classname);
var m2=classset.select(userset.userid).leftjoin(m2).on(classset.classid.equal(userset.userid)).where(userset.userid.biggerthan(9));
2.2、巢狀查詢
var mql= classset.select(classset.classid).where(classset.classname.startwith("0443430").or(classset.classname.startwith("uu")));
var mql =scoreset.selectall().where(scoreset.userid.in(userset.select(userset.userid).where(userset.classid.in( classset.select(classset.classid).where(classset.classname.equal(c.classname).and(classset.classid.biggerthan(0)))
))));
第二部分moon.orm 5.0
5.0重新借鑑了先前的諸多思想,但從新構思和架構了核心底層(實體層,mql的加入),也曾經給兄弟說要開源之前的版本(這些天家裡不能上網,只能用手機了,大家見諒)如今我也要兌現了.
規範:1.資料庫表必須有主鍵(這不必說)
2.主鍵:必須與業務無關,且唯一(這是資料庫設計的基礎,不要被業務牽著走)
3.目前
5.0主鍵支援
:自增、
guid
using(db db=new
sqlserver(@"server=qsc-e15014a6665\sqlexpress;database=test;uid=sa;password=123456;"))
如上,系統會自動完成{}中的事務操作的.
1.2核心重構,標準化整體架構.
您需要了解db類(上面的sqlserver就繼承了)中的方法怎麼使用.最好的注釋就是不要注釋,讓大家見名思意.
1.3實體獲取的效能全面提公升
該設計中將實體的資料設定,reader直接存入字典,具體字段後置到獲取時,效能這個大家一試便知.
當資料庫變慢時,我們應如何入手
當資料庫變慢時,我們應如何入手 第一章 檢查系統的狀態 1.1 使用sar來檢查作業系統是否存在io問題 1.2 關注記憶體vmstat 1.3 找到使用資源特別大的oracle的session及其執行的語句 1.4 查詢前十條效能差的sql語句 第二章 檢查會話狀態 當應用管理員通告現在應用很慢 ...
登入oracle資料庫時很久無反應的問題處理一例
原因是系統存在僵死的程序,促使session處於啟用狀態.首先檢視alert.log檔案 接著檢視oracle程序 ps ef grep oracle 終止與oracle sid有關的所有oracle過程 ps ef grep oracle sid grep v grep awk xargs i k...
各個資料庫的無order by時的預設排序
oracle oracle對無order by的語句返回的結果不進行排序,oracle此時的處理方式是按照資料的物理儲存順序來讀取資料。因為rowid是每行資料的位址,所以有時候看起來會像是使用rowid排序的。但這個順序是可能被打亂的,在表的資料被刪除後,rowid會被新插入的資料占用。所以乙個無...