Ich habe eine Abfrage, wo ich eine "Where" -Klausel für zwei verschiedene Spalten in zwei verschiedenen Tabellen tun muss, aber subsonic erzeugt den gleichen parametrisierten Parameternamen für beide, die ein Problem verursacht. Wie kann ich das beheben?Subsonic: Gleiche Spaltenname verschiedene Tabellen
string _RawSql = new Select()
.From(Tables.Table1)
.InnerJoin(Tables.Table2)
.InnerJoin(Table3.SidColumn, Table2.Table3SidColumn)
.Where(Table1.SidColumn).IsEqualTo(2)
.And(Table3.SidColumn).IsEqualTo(1)
.BuildSqlStatement();
Die Abfrage dieser zu schaffen, ist
SELECT ....
FROM [dbo].[Table1]
INNER JOIN [dbo].[Table2] ON [dbo].[Table1].[Table2Sid] = [dbo].[Table2].[Sid]
INNER JOIN [dbo].[Table3] ON [dbo].[Table2].[Table3Sid] = [dbo].[Table3].[Sid]
WHERE [dbo].[Table1].[Sid] = @Sid
AND [dbo].[Table3].[Sid] = @Sid
anzumerken, dass in den letzten beiden Zeilen für seine Verwendung sowohl @Sid Tabelle1 und Table3. Wie gehe ich es so, dass es @ Sid0 und @ Sid1 verwendet?
Jede Hilfe wäre willkommen. Danke
Danke für die Antwort, ich schätze es wirklich. Ich verwende 2.1 Ich verwende bereits TableColumn. Subsonic-Code unten ist der C# ...
.Where(Table1.SidColumn).IsEqualTo(2)
.And(Table3.SidColumn).IsEqualTo(1)
, die folgende SQL erstellt, wenn in SQL Profiler betrachtet
WHERE [dbo].[Table1].[Sid] = @Sid
AND [dbo].[Table3].[Sid] = @Sid
Könnten Sie mir bitte zeigen, wie kann ich diese Zeilen mit der Art und Weise ersetzen Sie vorschlagen ? Ich würde wirklich lieber nicht wörtlich verwenden „Table2.Sid = 2“
Ranmore, ist die Frage gleiche mit Variablen oder mit Konstanten.
Ich habe sogar versucht,
.Where("Table1.Sid").IsEqualTo(2)
.And("Table3.Sid").IsEqualTo(1)
Dies schafft die Abfrage als
WHERE Table1.Sid = @Table1.Sid0
AND Table3.Sid = @Table3.Sid1
ich endlich anders parametrisiert Vars in diesem Fall erhalten, aber jetzt SQL Server beschwert, weil es nicht mag. in den parametrisierten Var-Namen.
Ich habe keine Ahnung, wie man eine Verbindung mit 2 Where-Klauseln für 2 verschiedene Tabellen durchführt!
Nein @Rob sogar 2.2 hilft nicht Bitte sehen Sie meine Frage hier: http://StackOverflow.com/Questions/1061851/column-with-Same-Name-in-Multiple-Tables-Causing-Problem-in-Subsonic -wählen – TheVillageIdiot