Wie erhalten Sie eine Liste aller Tabellen und verwenden Sie diese Liste zum Aufzählen der Spalten? Ich habe Beiträge gefunden, die das eine oder das andere beschreiben, aber nicht beides.LINQ Tabellenaufzählung mit Spaltenaufzählung
Mein Netto-Ergebnis ist ich eine statische Klasse erstellt werden soll, die Namen aller Spalten in jeder Tabelle enthält so konnte ich zum Beispiel tun:
comboBoxFoo.DisplayMember = SomeNamespace.SomeTable.SomeDisplayColumnName;
comboBoxFoo.ValueMember = SomeNamespace.SomeTable.SomeIDColumnName;
comboBoxFoo.DataSource = dingo;
ich derzeit this Methode verwendet, die Während es funktioniert, bedeutet das, dass ich meine Tabellen manuell in einer Liste erstellen muss.
Ich habe ein separates Befehlszeilenprojekt, das die SomeNameSpace.SomeTable-Klasse manuell generiert, und ich füge die generierte Klassendatei in das Projekt ein.
Idealerweise, wenn ich könnte Schleife durch über eine foreach von Tabellen und etwas tun, wie folgt aus:
foreach(var table in someTableNumerationMethodForAGivenContext())
{
var columnList = databaseContext.ColumnNames<someTable>();
foreach(var columnData in columnList)
{
DoJazz(columnData.Name);
}
}
Gibt es einen besseren Weg, um dieses andere zu tun, als manuell die databaseContext.ColumnNames zu tun haben()?
Bearbeiten 1: Wir verwenden LinqToSQL. Der Wechsel zu ADO.NET ist auch eine Option auf dem Tisch, aber im Moment haben wir keine dringende Notwendigkeit dazu.
Edit 2: Ich weiß, dass L2S tutbinding, aber was ich bin, ist eine Liste der Spaltennamen als Zeichenfolgen aus einer Tabelle. L2S bietet das nicht an oder es ist nicht auf meiner Seite ersichtlich. Ich möchte etwas tun wie: SomeTable.SomeColumn.ToString() oder etwas. SubSonic hat das.
Finale: Danke an alle. Alle sind sehr gute Antworten und führen mich zu der Antwort. Ihr Jungs rockt!
Wir verwenden Linq zu SQL, aber ich habe keine Ahnung, wie die Spaltennamen sind Strings. Irgendwelche Links zu bieten, damit ich lesen kann? Ich fühle mich, als würde ich etwas völlig Offensichtliches vermissen. –