[英]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.