LINQ: Wählen Sie Daten aus einer einzelnen Spalte in IQueryable<>
Ich habe eine Tabelle, die ich brauche, um Daten zu extrahieren aus, und abwerfen wollen, eine der beiden Spalten, die die Daten kommt. In meiner DB habe ich "ObjectID (PK)" und "ObjectName".
Möchte ich diese Daten nutzen, um füllen eine Auswahlliste in einem ASP.NET MVC-Projekt, und so haben ein IQueryable-Objekt in meinem code sieht das wie folgt aus:
public IQueryable<objectRef> FindSomeObject()
{
return from myObj in db.TableName
orderby myObj.colName
select myObj;
}
Wenn ich Versuch zu ändern, die Letzte Zeile zu ziehen, nur eine einzelne Spalte im Wert von Daten, wie zum Beispiel:
select new { myObject.colName };
Bekomme ich eine Warnung, dass ich bin versucht, implizit konvertiert einen anonymen Typ an meinem aktuellen Typ.
Ärger ist, dass diese Abfrage wird verwendet in ViewData[""]
um eine SelectList
zeigt das drop-down-fein, aber schreibt der PK-Wert der neuen Tabelle anstatt der text.
Ich gehe davon aus, dass ich weiß so wenig über diese, ich kann nicht einmal Google Fragen die richtige Frage, wie Stunden RTFM ergab nichts brauchbares. Jede Hilfe würde geschätzt werden.
InformationsquelleAutor Paul Stevens | 2009-03-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie ändern Sie den Rückgabetyp der Methode - wenn Sie nur wollen, wählen Sie eine Spalte, nur erklären Sie, dass Sie gehen, um etwas von dem zurückgeben, der die Spalte. Zum Beispiel:
Die im Grunde sagt, dass es eine Abfrage gibt eine Sequenz von strings - das ist, was Sie wollen, nehme ich an.
InformationsquelleAutor Jon Skeet
Durch die Art der colName, wie:
InformationsquelleAutor eglasius
Haben Sie versucht:
Und durch die Art und Weise, Sie haben eine Klasse namens objectRef, beginnend Kleinbuchstaben? Das sollte einen Großbuchstaben am Anfang (und muss es sein, unabhängig von der Art
colName
ist).InformationsquelleAutor Daniel Earwicker