2013-01-17 104 views
1

我正在使用EF 5,POCO對象和SqlQuery。對象的實現非常慢,大約20秒。如果我使用sql管理工作室運行SQL查詢,則查詢在大約2秒內運行。 (例如this.context.mytable.SqlQuery(query).AsNoTracking.ToList())實體框架5 SqlQuery緩慢實現

我以前使用與EF 4,生成的實體和ExecuteStoreQuery完全相同的SQL查詢。物體的實現速度並不像10秒鐘那麼慢。

爲什麼使用POCO的性能差異?我已經嘗試了使用POCO的DbContext中的ExecuteStoreQuery,並使用相同的緩慢(20秒)結果。

任何想法?

提前,謝謝!

更新:

  1. 實體類:
    兩個實體類,一類是基礎類。兩者之間大約有27列/屬性,大部分屬於基類。

  2. 選擇結果中的對象數量:
    約75K。

  3. 存儲查詢被執行:
    該查詢是從視圖中選擇(列),其中(1 = 1)

  4. 正在使用

    API(的DbContext或ObjectContext的)
    在EF 5/POCO場景我正在使用DbContext。
    在EF 4/Generated entities場景中,我使用了ObjectContext。

    **使用EF 5/DbContext時,我也嘗試訪問(較低級別的)ObjectContext和ExecuteStoreQuery方法,該方法的結果與DbContext SqlQuery的結果相同。

+0

請提供更多信息 - 實體類,選擇結果中的對象數,正在執行的存儲查詢,正在使用的API('DbContext'或'ObjectContext')。 – Dennis

回答

0

錯誤的警報......最終成爲poco中的一小部分反射,在實現許多物體時降低了性能。