簡體   English   中英

為什么使用分層體系結構時,首先在C#實體框架代碼上檢索數據的速度慢?

[英]why data retrieving slow on C# Entity-Framework Code first when used layered architecture..?

我正在使用代碼優先的C#實體框架技術開發C#桌面應用程序。 我需要使用具有這些層的分層體系結構。

1.實體層-用於代碼首先創建數據庫

2.數據訪問層-用於訪問數據庫以及所有與數據庫相關的方法

3.業務邏輯層-用於將接口與數據訪問層連接

4.Presentation層-用於界面設計

從數據庫獲取數據時,需要花費一些時間才能加載。 有什么辦法可以解決...?

我的項目經理教授說,這是因為它具有分層體系結構。

如果您對模型不了解,就不可能說出為什么數據檢索很慢。 EF比.NET上的其他ORM框架要慢一些,但效果很好。 您應該開始分析模型。 另外,請記住,您的模型背后有一個數據庫。 ORM工具的用戶傾向於忘記這一點。 您可以使用諸如EF Profiler之類的工具查看要發送到數據庫服務器的查詢。 在或多或少復雜的模型上使用ORM時,必須使用這種工具。

一個典型的問題是SELECT N + 1問題,當您獲取一個具有其他實體集合的實體,該集合被代理並開始遍歷該實體時,子實體被一個一個地延遲加載,發出至少相同數量的查詢。因為你有那些子實體。 在這種情況下,急切的fetchig是關鍵解決方案。 但是,同樣,您沒有提供任何細節,因此您必須自己解決問題。 問題不在於EF本身,也不在於分層體系結構。

暫無
暫無

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

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