【发布时间】:2014-02-17 14:05:27
【问题描述】:
我有一个查询要加载特定实体的相关实体,但加载数据需要 5 秒,发生了什么?
var rows = clientes.Select(c => new
{
c.Id,
c.Nome,
Telefone = String.Format("(0{0}) {1}", c.DDD, c.Telefone),
c.Email,
Veiculo = (from v in c.Veiculos select new { v.Id, v.Modelo, v.Chassi }),
})
.Skip(pageNumber > 1 ? qtdRows * (pageNumber - 1) : 0)
.Take(qtdRows)
.ToArray();
【问题讨论】:
-
你能把EF发送到服务器的SQL贴出来吗?
-
顺便说一句,我认为您需要一个 OrderBy 子句才能让 Skip 可靠地返回预期的实体子集。
-
那么您的
Veiculo选择正在下拉每个 记录的整个 表,我猜这就是问题所在。 -
是运行时第一次查询数据库吗?如果是这样,您应该注意实体框架stackoverflow.com/questions/13250679/…的“热身”问题@
-
这可能是因为它是外连接。或者你应该在数据库中添加索引。
标签: c# performance entity-framework entities