2016-05-21 10 views
0

ich ein Usercontrol in WPF-Projekt haben whic es eine Auswahlabfrage ausführen, die eine lange Zeit in Anspruch nimmt dies der CodeLINQ to ENTITY Auswahlabfrage Ausführung dauert lange - WPF

Entities1 context = new Entities1();       
ObservableCollection<E> _E = new ObservableCollection<E>(); 
CollectionViewSource ECollection = new CollectionViewSource(); 
ECollection = (CollectionViewSource)this.Resources["EResource"]; 
this._E = new ObservableCollection<E> 
      (from e in context.Es 
      join eg in context.EQ_Gs on e.EQ_G_ID equals eg.EQ_G_ID 
      join u in context.Us on e.U_ID equals u.U_ID 
      join b in context.Bs on e.B_ID equals b.B_ID 
      select e);   
      ECollection.Source = this._E; 
      this.Grid_E.ItemsSource = this._E; 
      this.Grid_E.DataContext = this._E; 
      this.DataContext = ECollection; 

und Tabelle E hat 30000 ist Rekord es dauert aound 2,5 min die Usercontrol zu laden, wenn Sie eine Idee haben, die Leistung zu verbessern, ist es mir eine Menge dank und Gruß im Voraus helfen würde

+0

Es gibt nicht viel, was wir tun können, um die Leistung Ihres Codes zu verbessern. Sie tun nichts Ungewöhnliches und die Abfrage wird nur einmal ausgeführt. Alle Optimierungen müssten für Ihre Datenbanktabellen durchgeführt werden. Die einzige andere Sache, die Sie tun können, ist nur die Felder Ihres Es-Objekts auszuwählen, die Sie tatsächlich benötigen ... aber wir haben keine Ahnung, wie Sie sie tatsächlich in Ihren Ansichten verwenden ... –

Antwort

0

dank liebt Jeff Mercado

Ich änderte die Abfrage und verwendete Eager-Lade-Abfrage, es half viel und Ladezeit reduziert. var query = context.E.include("B").tostring()