2012-01-22 34 views
0

我已經閱讀了一些關於此事的文章,但我想再次問一次,因爲我不知道如何解決我的問題。如何在MVC3項目中構建業務層?

我在使用MVC3的項目上工作。該項目應該管理學校系統(學校,學生,教師,家長,用戶,角色等),在這樣的學校管理系統的中心是 - 科目安排

我們從MS SQL Server通過EF4 (數據庫第一種方法),這意味着所有的實體類都是自動創建的,所以我有這樣一個代表數據庫表的類,例如School,Pupil,Teacher,Role等等,並且我有DbContext派生類。我們主要知道我們的演示文稿(UI)圖層應該是什麼樣子。

問題出在UI和類之間的層中,我們通過使用EF4自動獲得,我已經提到過了。閱讀有關知識庫和工作單元模式並瞭解它們的工作方式。我認爲我們可以應用這些模式,但是我們的項目設計師想要使用其他的東西。他希望有清晰的層次分離。他希望調用放置在業務層的控制器的簡單方法,這意味着幾乎整個邏輯不應該在控制器中,而應該在業務層中。

我不知道現在應該從哪裏開始。我擁有學校,學生,教師,角色等所有實體課程。我有DbContext派生類。這意味着這些類是業務層的輸入。業務層應該輸出什麼?我如何設計業務層?

預先感謝您。

戈蘭

回答

2

您只需創建一個業務層。通常,這將是您解決方案中的一個新項目。 PROJECT.Business或PROJECT.BLL或類似的。

這層映射到您的域名,所以你將創建類似的類爲學生,教師,學校,班級等..

你可能有一個學校類,而學校類有像「GetStudents方法()「這個GetStudents()方法將實例化你的數據層,並返回一組學生。如果你需要應用任何邏輯,這是地方。

MVC是UI層。 EF是數據層。您可以根據需要創建業務層,它不是MVC或數據層的一部分,完全取決於您。

+0

Mystere Man,我已經實現了你的建議。非常感謝你。 – tesicg

0

在我看來,你應該具有以數據和從數據庫和查詢庫。對於操作數據或準備輸出的操作,您可以簡單地擴展模型中已有的類以提供該功能。業務層應該輸出與您的視圖相關的數據。這些數據可以通過存儲庫在控制器中請求,由擴展類處理,然後在視圖的強類型模型中準備。

+0

謝謝您的建議。 – tesicg