【发布时间】:2011-04-08 22:19:12
【问题描述】:
我有一个带有 EF 模型的 Web 应用程序,它最初是使用 SQL Server 2008 后端设计的。后来,为了可移植性,我决定使用 SQL CE,因此我将模型转换为面向 Sql CE 4.0。但是,在运行此应用程序时,我遇到了严重的性能问题。
例如,我在代码中有一部分从数据库中检索实体:
Trace.Write("Retrieving node from database", "Application");
var name = value.ToString();
var node = DataContext.Entities.Nodes
.SingleOrDefault(n => n.Name == name);
Trace.Write("Node retrieved from database ", "Application");
当我查看跟踪信息 (trace.axd) 时,这些代码行耗时 0.6 秒!!
跟踪信息
Category Message From First(s) From Last(s)
Application Retrieving node from database 0.00057591118424269 0.000576
Application Node retrieved from database 0.595122564460008 0.594547
这发生在我按名称查询的应用程序中的任何地方。
有什么想法吗?我猜我必须在列上定义一个索引,但我将如何在 EF 模型中做到这一点?
编辑:语法 编辑 2: 标题中的拼写
【问题讨论】:
标签: entity-framework-4 sql-server-ce