2014-10-05 80 views
-1

我有一个模型,如下所示:许多导航性能水平需要很长时间才能坚持

Request 
    Hgx 
     ICollection<Project> 
      ICollection<Sample> 
      ICollection<Typing> 
       .... 

一个非常复杂的模型和层次。当我保存传入的请求时,需要15秒。

我该如何加快速度?

+0

这只是一个预感,对不起,如果我只是浪费OP下的空间。属性是否是虚拟的(启用延迟加载),可能是从数据库检索到太多数据? – Yoda 2014-10-05 18:04:30

+0

我只做插入。有很多这样的导航属性。, – DarthVader 2014-10-05 18:05:19

回答

2

EF可以在更复杂的情况下生成一些晦涩的SQL语句。这可能是你的情况的一个问题。但我也读this post,其中存在导致EF执行方式太慢的DataType不匹配。

EF期望nVarChars voor字符串字段/列,但如果它们实际上是数据库中的varchar,则可能会导致一些严重的性能问题。希望你可以在链接的文章的帮助下对其进行排序。另外,EF(或者更一般地说我相信)“第一次查询”可能需要一些时间来初始化连接,初始化EF上下文等等。所以你应该真的解决一些事情弄糟的地方。对同一个插入语句的直接重新编译是否像第一个语句一样执行slsow?

相关问题