Mi è stato chiesto di indagare sull'utilità di linq to sql per un'applicazione di reporting che stiamo costruendo. La nostra tabella di report è una tabella wide server sql con molte migliaia di colonne di diversi tipi (String1-500, Int1-500 ecc.). Contiene i risultati di report dinamici creati dall'utente.
Abbiamo una seconda tabella che associa un campo di report a una colonna della tabella di report con una coppia ordinale di tipo (cioè colonna String1).
So che dovrebbe essere possibile costruire alberi di espressioni su una classe dbml linq to sql che possa restituire i risultati del rapporto. Vorrei portarlo un po 'oltre e restituire solo le colonne associate ai campi e restituire un tipo dinamico come risultato.
Inoltre, per evitare di mantenere l'enorme classe della tabella di reporting nel dbml.
È possibile eseguire una query linq dinamica su una tabella non nel dbml, ovvero (non un'entità linq in sql)?
Mi rendo conto che questa è una bastardizzazione di L2S e non mi piace. Sto prendendo in considerazione l'utilizzo del vecchio ADO semplice e la restituzione di un set di risultati atipico.
Grazie molto,
Ian
Sì, è possibile eseguire LINQ to SQL su un'entità non nel DBML.
Potrebbero esserci diversi modi per farlo, ma il più semplice che mi viene in mente è chiamare DataContext.ExecuteQuery che eseguirà un'istruzione SQL e restituirà un set di risultati.
Se conosci il tipo di risultato puoi lanciarlo in un oggetto, altrimenti puoi restituirlo come un elenco di tipi di oggetto.