J'ai une requête où j'ai besoin de faire une clause "Where" pour deux colonnes différentes dans deux tables différentes mais subsonic crée le même nom de paramètre paramétré pour les deux qui cause un problème. Comment puis-je réparer cela?Subsonic: même nom de colonne différentes tables
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();
La requête cela crée est
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
Notez que dans les deux dernières lignes de son utilisation de @Sid pour Table1 et Table3. Comment vais-je faire pour qu'il utilise @ Sid0 et @ Sid1?
Toute aide serait appréciée. Merci
Merci pour la réponse, je l'apprécie vraiment. J'utilise 2.1 J'utilise déjà TableColumn. Ci-dessous le code C# subsonique ...
.Where(Table1.SidColumn).IsEqualTo(2)
.And(Table3.SidColumn).IsEqualTo(1)
qui crée l'instruction SQL suivante vue dans sql profileur
WHERE [dbo].[Table1].[Sid] = @Sid
AND [dbo].[Table3].[Sid] = @Sid
Pourriez-vous s'il vous plaît me montrer comment puis-je remplacer ces lignes avec la façon dont vous suggérez ? Je préfère ne pas vraiment utiliser littérale « Table2.Sid = 2 »
Ranmore, la question est la même avec des variables ou constantes.
J'ai même essayé
.Where("Table1.Sid").IsEqualTo(2)
.And("Table3.Sid").IsEqualTo(1)
Cela crée la requête comme
WHERE Table1.Sid = @Table1.Sid0
AND Table3.Sid = @Table3.Sid1
Je reçois enfin différentes vars paramétrées dans ce cas, mais maintenant SQL Server se plaint parce qu'il ne l'aime pas. dans les noms de variables paramétrés.
Je n'ai aucune idée de comment effectuer une jointure avec 2 clauses where pour 2 tables différentes!
Aucun @Rob même 2.2 ne vous aide pas S'il vous plaît voir ma question ici: http://stackoverflow.com/questions/1061851/column-with-same-name-in-multiple-tables-causing-problem-in-subsonic -sélectionner – TheVillageIdiot