Zdravím všechny Potřeboval bych poradit s následujícím Načtu si tabulku např. dopravců z SQL serveru. Poté chci např. filtrovat nějakého dopravce, ale přijde mi zbytečné znovu načítat celý seznam z SQL serveru. Vše krásně funguje pokud se odkazujei na zdroj dat v jedné proceduře. Bohužel nevím jak se odkazovat na tento zdroj mimo spouštěcí proceduru. Viz příklad.
Module ModulePublic
Public Dopravci = From d In db.tbl_Dopravcis.ToList _
Where d.Aktivni = True _
Order By d.Nazev _
Select Nazev = Trim(d.Nazev), d.ID
End Module
Public Class Dialog_Vratky
Private Sub cbxDopravce_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cbxDopravce.Click
cbxDopravce.DataSource = Nothing
cbxDopravce.DataSource = Dopravci 'Načte správně !!!
cbxDopravce.DisplayMember = Trim("Nazev")
cbxDopravce.ValueMember = "ID"
cbxDopravce.SelectedIndex = -1
Dim DopravciFiltr = (From df In Dopravci _
Where (df.ID = 1) _
Select df).First
MsgBox(DopravciFiltr.Nazev.ToString)
End Class
Výsledek je takový, že seznam se do komba v pohodě načte ale druhý dotaz "DopravciFiltr" se neprovede, přestože mají oba stejný zdroj dat. Souhrnem, jde mi o to, abych nemusel psát v rozsáhlé aplikaci 10 x stejný dotaz a měl ho uložen jen jednou, mohl se na uvedený seznam resp. tabulkou kdykoliv odkazovat a nemusel tak opakovaně sahat na SQL server a tahat z něho stále stejný zdroj dat. popis chyby: Error 1 Expression of type 'Object' is not queryable. Make sure you are not missing an assembly reference and/or namespace import for the LINQ provider. Můžete mi někdo poradit ?
|