Hallo zusammen,
ich habe mir ein Datengenerator gebaut, der über die Where-Extension der Linq.Dynamic einen dynamischen Filter auf eine Gejointe-Liste anwendet.
Funktioniert auch wunderbar. Das Problem ist jetzt nur, dass alle gejointen Tabellen vollständig geladen werden müssen und erst dann der Where-String angewendet wird, d.h. bei Datensätze > 1000 wird das sehr langsam.
Weiß jemand wie man das performanter hin bekommt?
ich habe mir ein Datengenerator gebaut, der über die Where-Extension der Linq.Dynamic einen dynamischen Filter auf eine Gejointe-Liste anwendet.
Funktioniert auch wunderbar. Das Problem ist jetzt nur, dass alle gejointen Tabellen vollständig geladen werden müssen und erst dann der Where-String angewendet wird, d.h. bei Datensätze > 1000 wird das sehr langsam.
Weiß jemand wie man das performanter hin bekommt?
VB.NET-Quellcode
- Public Function GetJoiningData(ByVal WhereString As String) As ObservableCollection(Of JoiningGesamtdaten)
- Return New ObservableCollection(Of JoiningGesamtdaten)((
- From gru In (database.GetAll(Of Basis)())
- Join bed In (database.GetAll(Of BedGrunddaten)()) On bed.Grunddaten Equals gru
- Join bel In (database.GetAll(Of BelGrunddaten)()) On bel.Grunddaten Equals gru
- Join fil In (database.GetAll(Of FilGrunddaten)()) On fil.Grunddaten Equals gru
- Join ger In (database.GetAll(Of GefilterGrunddaten)()) On ger.Grunddaten Equals gru
- Join lüf In (database.GetAll(Of LfGrunddaten)()) On lüf.Grunddaten Equals gru
- Join steu In (database.GetAll(Of StGrunddaten)()) On steu.Grunddaten Equals gru
- Join vibverk In (database.GetAll(Of VVerknüpfung)()) On vibverk.Grunddaten Equals gru
- Select New JoiningGesamtdaten With {
- .Basis = gru,
- .BedGrunddaten = bed,
- .BelGrunddaten = bel,
- .FiGrunddaten = fil,
- .GefilterGrunddaten = ger,
- .LfGrunddaten = lüf,
- .StGrunddaten = steu,
- .VVerknpüfungen = vibverk
- }).ToList.OrderByDescending(Function(x) x.TestNumber).Where(WhereString).ToList)
- End Function