Ich lese eine einfache CSV-Datei aus meinem Programm. Hier ist, was meine CSV-Datei wie folgt aussieht:LINQ-TO-SQL-Abfrage funktioniert nicht mit CSV-Datei
NASDQ,O,
OTC,O,
NYSE,N,
TSE,T,
Hier mein Code ist die CSV-Datei zu lesen:
string csvFile = @"x:\tech\SQL_IntlPricing\ExchangeLookup.csv";
string[] csvLines = File.ReadAllLines(csvFile);
var csvValues = csvLines
.Select(l => new {
Exchange = l.Split(',').First(),
Lookup = l.Split(',').Skip(1).First()});
Bisher ist alles mit dem Code in Ordnung. Ich verwende die folgende LINQ-Abfrage:
from comp in Companies
where !comp.Coverage_status.Contains("drop")
select new
{
FSTick = string.Format("{0}-{1}", comp.Ticker,
csvValues
.Where(v => v.Exchange.Contains(comp.Exchange))
.Select(v => v.Lookup).FirstOrDefault())
};
Aber ich bin immer folgende Fehlermeldung:
NotSupportedException: Local sequence cannot be used in LINQ to SQL implementations of query operators except the Contains operator.
Grundsätzlich versuche ich, die folgenden Ergebnisse zu erhalten:
AAPL-O
MSFT-O
Gibt es eine Möglichkeit für mich, mit meiner LINQ-Abfrage die gewünschten Ergebnisse zu erzielen?
Können Sie nach, was 'Companies' ist/seine Aufgabe? Es sieht so aus, als würde linq-to-sql die Auflistung (Sequenz) nicht unterstützen, die von der linq-Anweisung selbst erstellt wird (comp hier). Ich würde den gesamten Ausdruck in Linq-Erweiterungsmethoden umwandeln. – Veverke
Ich bin mir nicht sicher, ob ich folge. Unternehmen ist eine SQL-Tabelle in meiner Datenbank. Was genau verlangst du? –
@Veverke würden Sie bitte ein Beispiel geben? –