C# 性能实体框架6-数据库优先

C# 性能实体框架6-数据库优先,c#,sql,entity-framework,entity-framework-6,C#,Sql,Entity Framework,Entity Framework 6,我从数据库中构建了以下模型: 正如你所看到的,这里有很多关系。 我刚开始开发,并试图通过用户名查询经理。 查询大约需要2秒钟 这是因为它正在获取所有其他相关表吗? 我怎样才能改善糟糕的表现?多数据模型 查询: public Manager GetByUsername(string username) { username = username.ToUpperInvariant(); using (var entity = new Kleidungsv

我从数据库中构建了以下模型:

正如你所看到的,这里有很多关系。 我刚开始开发,并试图通过用户名查询经理。 查询大约需要2秒钟

这是因为它正在获取所有其他相关表吗? 我怎样才能改善糟糕的表现?多数据模型

查询:

 public Manager GetByUsername(string username)
    {
        username = username.ToUpperInvariant();

        using (var entity = new KleidungsverwaltungEntities())
        {
            var manager = entity.Managers.FirstOrDefault(x => x.Username == username);
            if (manager == null)
                throw new ManagerDoesNotExistException();

            return manager;
        }
    }

谢谢你

首先,拥有你的DB图很好,但是访问你正在使用的
查询
以及一些可能的
代码
也是非常有趣的,你可以尽情享用

事实上,这很有可能是因为导航设置的原因,您应该查找或查看任何其他类型的负载,并根据需要选择一种。您也可能对此感兴趣,这将为您提供有关延迟加载的快速概述

编辑1:


您的第一次调用很慢,因为它负责加载您的Resources。由于EF,您应该可以通过对同一类型实体的后续调用更快地访问它们。如果您访问的实体类型以前没有查询过,并且您也没有立即加载(或其他),则处理时间也会很短。您可以通过选择要在您的上下文中“跟踪”的实体来管理这一点。

谁知道,,,我相信大多数minder读者现在都不在这里。。代码在哪里?请尝试多次运行此查询。延迟应该只在第一次查询时出现,因为EF会自动初始化。在随后的查询中,它应该是好的(当然,除非你有数百万个经理,并且没有索引)。哦,上帝,你是对的。之后的所有查询都可以正常工作。。谢谢,我补充了这个问题