如何編寫帶有ORM的三層架構,最好給個例子看看

時間 2021-05-07 20:00:57

1樓:百靈鳥

orm可以這麼理解:

一般的,我們把系統所需要的資料放在資料庫中。而顯示給使用者的頁面中使用的資料是通過讀取資料庫並進一步處理得到的。

而資料庫中的資料是結構的。

我們需要的.net程式設計中的資料時物件導向整合了的。

故:我們需要一種機制,可以把資料庫中的結構性的資料轉換為物件導向的資料。於是就出現了系統架構中常見的3層架構:

底層:dal(data access layer,資料訪問層)

中間:bll (bussiness logic layer,業務邏輯層)

頂層:ui層~

dal中,我們使用實體類完成對資料庫表的封裝:

例如:我們構建一個文章管理系統。需要以下表

[articles] [categories] [comments]

以[articles]為例,包含的欄位:

[articleid] [title] [content] [addedby] [addeddate]

dal層對應的實體類為[articledetails]

包含以下屬性[articleid] [title].......等5個屬性,以此對應表的5個欄位。

對應db中的3個表,我們有3個實體類。

建立類sqlarticlesprovider 來完成對db的操作的封裝。

通常每個方法封裝一個儲存過程~

例如:getarticles(int categoryid)方法中。

我們連線db,呼叫sp,並將返回的datareader封裝到實體類集合list中。以用於傳輸給bll層。

bll層:

之中的類稱為域物件。有[article] [category] [comment]

這裡的每個類就是我們傳統oop中的類。

每個物件包含描述自己的屬性和可執行行為的方法。

ui層,直接呼叫bll層的類以獲取資料,並通過資料繫結控制元件顯示的頁面等~

說的有點亂。。。光這麼著說確實不是特別充分。。

而且真正實踐程式設計起來,比這個複雜。。

三層架構之後的系統更易於維護。變更底層資料儲存,需要改動的地方非常少。

故,主要是用於大中型系統架構。

而且現在推出linq後,對編碼量也降低了。但是單獨學習linq,時間也不會少。

如果不要linq的話,還是有很多工具**可以幫助自動的構建一些類的~

2樓:匿名使用者

orm應該指的是一種設計思想。推薦看微軟官方推薦的petshop。當然petshop裡頭不僅僅有orm設計,還有很多其他的設計思路。看起來會吃力一些,但是可以學的東西也多。

3樓:匿名使用者

orm 是一種技術(實現),和架構無關,比如linq to sql 是一種orm 技術,你可以用在任何架構中。

當然一般在3層架構中orm是作為資料層的一部分出現的。

linq to sql 的例子到處都是。

3層架構你可以參考csla.

怎麼使用三層架構

三層架構的具體含義是什麼?舉個例子,謝謝。

4樓:匿名使用者

三層架構是.net的執行方式,具體為

底層是資料庫層->儲存資料

中間為業務邏輯層->業務處理

最外層為表現層->處理展示、樣式的。

近些年,程式設計方面更流行mvc框架

m:模組

v:檢視

c:控制

好好去學習吧。

階乘程式如何編寫,階乘程式如何編寫vfp

vfp 階乘自定義函式參考 呼叫例子 求 100!clear m factorial 100 階乘函式 m factorial 引數 nfactor 數值型 階乘因子 返回 數值型 階乘的值 procedure m factorial nfactor local i,nproduct nproduc...

如何編寫shell指令碼,如何編寫一個shell指令碼

新建一個檔案shell指令碼一般用 sh作為字尾當然勇氣他的也可以。開啟終端輸入touch first.sh 新建一個名為first的shell指令碼。編寫一個簡單的linuxshell指令碼 使用vim 編輯first.sh也可以用其他的文字編輯器,推薦使用vim 使用命令 vim first.s...

如何編寫robotframework測試用例

1.系統頁面必須與照設計文件一致.測試時須檢查的地方有 各頁面的列名,提示資訊等文字描述是否存在錯別字.列寬長度是否合適,能否完全顯示輸入資訊.注意 頁面如出現有變數,則須對這些變更的正確性進行驗證 2.測試基礎資訊錄入,必填項必須測試資料錄入範圍,保證所有的資訊能夠有效的錄入系統。可採用臨界值測試...