绩效实体框架6 - 数据库优先

时间:2018-03-12 11:03:41

标签: c# sql entity-framework entity-framework-6

我已经从我的数据库构建了以下模型: ElementAt

如您所见,这里有很多关系。 我刚开始开发并试图通过用户名查询经理。 查询大约需要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;
        }
    }

谢谢

1 个答案:

答案 0 :(得分:0)

嗯,首先,让您的数据库图表很好,但访问您正在使用的query以及可能需要访问的code也是非常有趣的。

由于您的导航设置方式,您应该查看Lazy loading或任何其他类型的负载,确实很有可能它正在做什么,并根据您的需要选择一个。您可能也对tutorial感兴趣,它可以让您快速了解延迟加载

EDIT1:

你的第一次调用很慢,因为它的任务是加载你的资源,如果你访问之前没有查询的实体类型,你应该更快地访问它们,后来通过EF调用相同类型的实体。而且你还没有急切地加载(或其他),它同样会有一个小的处理时间。您可以通过选择要在上下文中“跟踪”的实体来管理此事。