2009-07-17 4 views
0

Ich fange an, einen Test auf SubSonic 3 zu machen und mir fehlen einige Sachen.Ich vermisse Funktionen auf SubSonic 3

1.: Wo sind die Konstanten der Tabellennamen? Der Ort, an dem wir nach dem gleichen einer bestimmten Tabelle mit Hilfe von Intelissense fragen könnten ...

2: Wie oben, aber für die Tabellenspalten ... wo sind sie? Dies ist sehr nützlich, vor allem, wenn Sie diese Namen als Zeichenfolge übergeben müssen ... Sie müssen Ihre DB refaktorieren wir müssen nicht durch den ganzen Code zu suchen, wo ich diese Spalte verwendet wurde !! Sobald Sie den Code neu generieren, sagt Ihnen der Compiler!

3.: Wie kann ich einen ExecuteReader für eine bestimmte Tabelle ausführen, so wie ich es von 2.x gewohnt bin, über das Query-Objekt? Ich benutze dies sehr für die Liste, wo ich wirklich die Business-Objekte (BO) Overhead nicht brauche ... Wenn ich ein BO (zum Anzeigen einer Rasterzeile Details) brauchte, erstelle ich es aus der Zeile selbst ...

Ich benutze ActiveRecord btw ...

Danke Jungs! Alex

Antwort

1

1.: Wo sind die Konstanten der Tabellennamen? Der Ort, wo wir für das gleiche einer bestimmten Tabelle fragen konnten intelisense mit ...

In Structs.tt finden Sie die folgende Codezeile in Zeile 47:

<#   foreach(var col in tbl.Columns){#> 

Fügen Sie den folgenden Code darüber:

public static string TableName { get { return "<#=tbl.Name#>"; } } 

Jetzt haben Sie eine Eigenschaft, die den Namen der Tabelle zurückgibt.

2 .: Wie oben, aber für die Tabellenspalten ... wo sind sie?

In der generierten Structs.cs Datei, wird dies in der 3.0.0.3 Version enthalten

3.: Nun, wie kann ich ein ExecuteReader auf einer bestimmten Tabelle durchführen, wie ich auf 2.x verwendet werde durch die Objekt abfragen? Ich benutze dies sehr für die Liste, wo ich wirklich die Business-Objekte (BO) Overhead nicht brauche ... Wenn ich ein BO (zum Anzeigen einer Rasterzeile Details) brauchte, erstelle ich es aus der Zeile selbst ...

Wenn Sie ein SqlQuery-Objekt verwenden, können Sie ExecuteReader dafür aufrufen. Alternativ können Sie die Linq-Syntax verwenden, um benutzerdefinierte Objekte mit Rückgabe zu generieren, und sie werden automatisch zugeordnet.

0

1. und 2.: Es ist nicht in den Standard-tt-Dateien implementiert.

A similiar Frage: SubSonic 3 Simple Query Tool

Problem ist, das ist keine korrekte Umsetzung, wenn Sie die 2.x Art und Weise wollen - die Xcolumn Eigenschaften verwendet Spaltenobjekte zu sein und nicht String-Konstanten, wurden die unter der Säulen-Struktur gefunden . Also hoffe ich, dass der Check-in nicht akzeptiert wird und dass jemand 2.x-ify es richtig macht.

Wie Sie sehen können, scheint es ziemlich einfach, es auf eigene Faust zu beheben.

+0

Ok ... Ich dachte, ich hätte etwas übersehen. Das Gleiche für die Tabellennamen struct right? Ich denke, ich werde nur die Vorlagen ändern. Was ist mit der 3. Frage? – AlexCode

+0

Ich bin mir ziemlich sicher, dass jemand bereits die Spaltennamen struct übergeben hat. Sollte in 3.0.0.3 Vorlagen sein. –

+0

@John Ja, es ist in 3.0.0.3 –