ich zur Zeit folgende If-Anweisung tun, um eine Liste, die enthält dieWie in Linq Abfrage
CountryCode (string)
CountryStr (string)
RegionStr (string)
RegionID (int)
AreaStr (string)
AreaID (int)
Dies ist eine abgeflachte Satz von verknüpften Daten (also im Grunde die Ergebnisse einer verbundenen Suche, die gespeichert ive)
Die MVC-Route wird nur eine Zeichenfolge übergeben, die ich dann mit den Daten auf der rechten Ebene in der Heirachy übereinstimmen muss. Also versuche ich den CountryStr abzufragen, wenn es dann nicht die Region und dann den Bereich produziert; aber ich brauche, dass etwas der Abfrage zu tun und zum Beispiel ...
var datURL = (from xs in myList
//query 1
where xs.RegionStr == rarREF
select new
{
regionID = xs.RegionId,
CountryID = xs.CountryCd
}
//IF theres no results
where xs.AreaStr == rarREF
select new
{
AreaID = xs.AreaID
regionID = xs.RegionId,
CountryID = xs.CountryCd
}
).ToList();
Der einzige Weg, ich sehe das im Moment zu tun, jede Abfrage separat ausgeführt wird dann überprüft, welche Werte zurückgegeben und die Verwendung dieser ein. Ich hoffe, es gibt eine cleverere, sauberere Methode.
Austauschen von Null für Standard (Int) wie in çağdaş scheint zu tun, was ich erwarte. Also ist die Wo Aussage sagen, wenn es keine Ergebnisse zurückgibt versuchen Sie AreaStr, wie ich denke, es ist? und damit vermute ich, dass ich mich problemlos mit mehr hinzufügen könnte: op –
Wir gehen davon aus, dass eine Region-Zeichenkette niemals einer Area-Zeichenkette entsprechen wird. Daher gibt die Where entweder das Listenelement zurück, wo die Region übereinstimmt oder die Area Streichhölzer. Dann in der Auswahl überprüfen wir erneut, ob die Übereinstimmung ein Bereich oder eine Region ist. Ich werde mit einer Version bearbeiten, die leichter zu lesen ist. – dahlbyk
Ich bin ziemlich beeindruckt von dem, was mit dieser linq Lerche erreicht werden kann. verdammt süß. Danke für die Hilfe! –