繁体   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