2010-09-22 44 views
0

我們使用ADO.Net DataService(.Net Framework 4.0,Visual Studio 2010)。我們有選擇,插入,更新和刪除操作。ADO.Net DataService性能問題

  • 用於選擇我們有像

學校上學= _context.School.Expand查詢( 「地址,ContactPerson,ContactPerson /詳細信息......」)。如果(S =>取值.Name ==「xxx」)。SingleOrDefault();

  • 用於插入

    _context.AddToSchool(學校); _contextSaveChanges();

    address.SchoolCode = school.Code; ////地址與學校有關係

    _context.AddToAddress(address);

//現在我們沒有任何級聯插入操作。

  • 對於更新我們使用這樣的

    //每一次更新時,我們正在創建的對象,我們都面臨着類似的「上下文已經跟蹤實體的問題」或「上下文沒有跟蹤「。這是最糟糕的實踐:(

    _context =新的DataContext(......)

    AttachObject( 「學校」,學校); _context.UpdateObject(學校); _context.SaveChanges() ;

    代碼段,其用於連接所述對象,同時更新

    私人無效AttachObject(串entitySetName,對象實體) {

    。 210

    }

  • 刪除

    //現在我們沒有任何級聯刪除操作。

地址地址= _context.Address.where(A => A.Code == deleteAddress.Code).SingleOrDefault();

_context.DeleteObject(address); _context.SaveChanges();

即使在本地系統中也需要花費大量時間。我很害怕性能,這需要在單獨的服務器上啓動。請告訴我什麼是使用「ADO」的最佳方法。淨DataService的」

我需要答案沒有下投票:)

編輯:我有5列的10列的範圍內檢查,分和4嵌套表連我自己都看到單列更新UI凍結5秒。

回答

0

我不排除查詢,只是還沒有。

  1. 什麼是日數據大小?幾百行,幾百萬或幾億?
  2. 索引和磁盤性能?
  3. 如果是遠程服務器,連接怎麼樣?

現在查詢

  1. 確保你沒有擴展的重複數據。只擴展需要的部分。
  2. 檢查你正在擴大其他數據類型,也許是二進制文件,有助於圖片等

希望。

+0

其唯一的本地系統,它的配置太好,排在單個數字。它比ADO.Net多兩倍。 – Mohanavel 2010-09-22 06:53:44