Iterieren über die Ergebnisse einer linq-to-sql Abfrage-Ergebnis aus, und fügen Sie die Ergebnisse?
Ich bin neu in C# und Linq-to-Sql.
Ich habe eine Tabelle 'InstrumentTypes' in dieser form:
typeId(int) | type(varchar) | subttype(varchar)
101 Keys keyboard
102 Keys accessories
103 Guitar acoustic
104 Guitar electric
Brauche ich, um zu Holen 'typeId' s von der Tabelle, basierend auf einer Suche nach 'Typ' als Eingabe, und alle typeId benötigt werden, gebunden an einen ASP-Repeater.
Bisher habe ich geschrieben das folgenden code:
//requestType contains the type from the search
var type = (from m in database.InstrumentTypes
where m.type == requestType
select m);
foreach(var typeId in type)
{
//code
}
Ich bin nicht in der Lage herauszufinden, wie Sie zum Durchlaufen der Ergebnisse aus der Abfrage, speichern Sie Sie in einem datastructure und binden Sie diese an einen Repeater.
Den folgenden code bindet es an den Repeater:
Repeater1.DataSource= //name of data structure used to store the types goes here
Repeater1.DataBind();
Könnte jemand bitte mir helfen?
BEARBEITEN:
Für jede typeID erhalten habe, möchte ich Zugriff auf eine andere Tabelle "Instrumente" und ruft alle Instrumente gehörenden typeId.
Die Tabelle "Instrumente" ist wie dieser:
instrumentId typeID name description
1000 101 yamaha xyz
Basierend auf Arialdo Antwort, ich bin dabei:
var type = (from m in database.InstrumentTypes
where m.type == requestType
select m);
var instruments = new List<Instrument>();
foreach (var i in type)
{
instruments.Add(from x in database.Instruments
where x.typeId == i.typeId
select x);
}
Repeater1.DataSource = instruments;
Repeater1.DataBind();
Aber ich bekomme einen Kompilierungsfehler, die sagen, 'Der beste übereinstimmung für die überladene Methode, die Liste hat einige ungültige Argumente. Wo mache ich falsch?
Ich aktualisiert meine Frage oben.
InformationsquelleAutor codewarrior | 2012-04-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was Sie von
ist eine Sammlung von
InstrumentTypes
, nicht eine Ansammlung von ids.Dies funktioniert für mich
dem Sie können leicht umwandeln zu
[Bearbeiten]
Können Sie direkt Abfragen Ihre Instrumente und navigieren Sie zu verwandten Objekten, so lange, wie Sie definiert eine Beziehung zwischen
InstrumentType
undInstrument
.Keine Notwendigkeit, separate
foreach
es oder Abfragen. Diei.InstrumentType
konvertieren in einjoin
, als könnten Sie überprüfen, mit einem SQL profiler -Genial, ich wusste nicht, könnten Sie das direkt. Vielen Dank Arialdo!
InformationsquelleAutor Arialdo Martini
Ich bin mir nicht sicher, was Sie Fragen.
Out-explizit definieren den zurückgegebenen Typ der Abfrage, die Sie bereits sind der Rückgabe ein IEnumerable<InstrumentTypes> object. Wenn Sie möchten, eine Liste der ID 's können Sie ganz einfach verfeinern Sie Ihre Abfrage mit ID' s eher als eine Liste von InstrumentTypes. Natürlich, dann würden Sie wieder ein IEnumerable<int> object.
InformationsquelleAutor bkingdev