簡體   English   中英

如何在不使用實體框架的情況下設計DAL / BAL以支持使用POCO進行延遲加載

[英]How to design DAL/BAL to support Lazy loading using POCO without using Entity framework

我正在使用ADO.NET,我已經創建了DAL和BAL,結構如下

DAL
   -POCO(Table to Entities mapping)
   -Repository (Add, Delete, Edit, Select, Search)

BAL
   -POCO(DAL to Entities mapping where Entities are complex type here)
   -BusinessManager(Validation and Business rules)

我將使用服務公開BAL。 BAL將使用Web,Window,Mobile等多個應用程序。

我不確定應從哪里開始Sql Transactions。 誰負責創建復雜的實體。

例如,復雜實體可能是

   Entity
     -Entity Type
     -Contacts
     -EmployeesReporting
     -ReportingTo

現在誰應該創建一個實體? 它是BAL還是DAL。 SqlTransactions應該在哪里啟動? 我是存儲過程的支持者並且更喜歡每個請求使用一個數據庫連接,因此我應該如何使這些實體支持延遲加載?

我不確定我是否希望您對每個請求使用一個數據庫連接是否符合您支持延遲加載的需求。

延遲加載的要點是,在最初加載對象圖時,您不需要實現它們的某些部分,並且在程序執行的某個稍后點,您可能需要也可能不需要加載那些部分。

以某種方式保留連接以滿足該需求將非常浪費寶貴的資源(DB連接)。

由於對象圖是在業務訪問層中使用的,因此對象圖的最初未實現的部分必須以某種方式表示,以允許您攔截使請求可用的請求,並按需生成它們。 EF解決方案是一個很好的解決方案,該解決方案是在業務層中放置代理,然后再激活DAL以按需獲取對象圖的缺失部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM