我已经从我的数据库构建了以下模型:
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;
}
}
谢谢
答案 0 :(得分:0)
嗯,首先,让您的数据库图表很好,但访问您正在使用的query
以及可能需要访问的code
也是非常有趣的。
由于您的导航设置方式,您应该查看Lazy loading或任何其他类型的负载,确实很有可能它正在做什么,并根据您的需要选择一个。您可能也对tutorial感兴趣,它可以让您快速了解延迟加载
EDIT1:
你的第一次调用很慢,因为它的任务是加载你的资源,如果你访问之前没有查询的实体类型,你应该更快地访问它们,后来通过EF调用相同类型的实体。而且你还没有急切地加载(或其他),它同样会有一个小的处理时间。您可以通过选择要在上下文中“跟踪”的实体来管理此事。