public static void MyFunction(MyErrorClass err)
{
var query = from filter in DataContext.ErrorFilters select filter;
query = query.Where(f => err.ErrorMessage.Contains(f.ErrorMessage));
List<ErrorFilter> filters = query.ToList();
//...more code
}
Così sto avendo alcuni problemi con il codice di cui sopra, e sto ricevendo l'errore dalla riga dell'oggetto al linea con query.ToList()
. Ecco cosa sto cercando di fare:"Solo gli argomenti che possono essere valutati sul client sono supportati per il metodo String.Contains"
Prima di tutto, ho una classe di errore personalizzata, MyErrorClass
. Ogni volta che si verifica un errore sul mio sito, creo un oggetto MyErrorClass
dall'eccezione, memorizzo tutti i dati dall'eccezione in quell'oggetto e memorizzo le informazioni nel database.
Una delle proprietà delle eccezioni di cui sto tenendo traccia è il messaggio per l'errore (ErrorMessage
). Ho una tabella ErrorFilters
impostata nel database in cui l'utente può filtrare gli errori in base allo ErrorMessage
. Quindi affermano che ci sono un sacco di errori che dicono "System.Data.SqlClient.SqlException: Timeout scaduto. Il periodo di timeout è trascorso prima del completamento dell'operazione o il server non risponde.", E si desidera ignorarli. Basta aggiungere un filtro al database con ErrorMessage come "timeout scaduto" e impostarlo in modo da ignorarlo.
Ora, la mia classe precedente è impostata per rilevare un errore e decidere se l'errore deve essere filtrato. Sto cercando di ottenere un elenco di tutti i filtri che hanno un ErrorMessage
corrispondente a quello dell'errore.
Sono sicuro che questa è una soluzione semplice, ma non so come risolverlo.
Questo metodo restituisce void, cosa dovrebbe fare? Se deve controllare se l'errore deve essere mostrato, allora dovrebbe restituire un valore booleano e una correzione può essere trovata. Altrimenti, spiega la domanda un po 'meglio. –
La funzione sta facendo molte altre cose che non sono rilevanti per l'errore, tutto quello che conta sono quelle 3 righe in cui sto cercando di ottenere un elenco di filtri che corrispondono all'errore. Ho spiegato tutto ciò che devi sapere, che altro ti stai chiedendo? –