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
Ich muss alle 'typeId's aus der Tabelle basierend auf einer Eingabe von 'type' abrufen und alle benötigten typeId's an einen ASP Repeater binden.
Bisher habe ich den folgenden Code geschrieben:
// requestType enthält den Typ aus der Suche
var type = (from m in database.InstrumentTypes
where m.type == requestType
select m);
foreach(var typeId in type)
{
//code
}
Ich kann nicht herausfinden, wie ich über die Ergebnisse der Abfrage iterieren, sie in einer Datenstruktur speichern und an einen Repeater binden kann.
Der folgende Code bindet es an den Repeater:
Repeater1.DataSource= //Name der verwendeten Datenstruktur zur Speicherung der Typen hier einfügen
Repeater1.DataBind();
Kann mir bitte jemand helfen?
EDIT: Für jede erhaltene typeID möchte ich auf eine weitere Tabelle 'Instruments' zugreifen und alle Instrumente abrufen, die zu dieser Typ-ID gehören. Die Tabelle 'Instruments' ist wie folgt:
instrumentId typeID name description
1000 101 yamaha xyz
Basierend auf der Antwort von Arialdo mache ich folgendes:
var type = (from m in database.InstrumentTypes
where m.type == requestType
select m);
var instruments = new List();
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 erhalte einen Kompilierungsfehler, der besagt 'The best overloaded method match for the List has some invalid arguments'. Wo mache ich einen Fehler?