Vous devez fournir les colonnes en fonction des tables incluses dans la jointure. Par exemple, si vous adhérez Tableau Trans et table UserTrans sur TransId, votre déclaration serait quelque chose le long des lignes de ce qui suit:
SubSonic.SqlQuery query = DB.Select()
.From(Trans.Schema)
.LeftOuterJoin(Trans.TransIDColumn, UserTrans.TransIDColumn);
Selon le SubSonic Simple Query Tool Docs, vous disposez de trois options en matière de gauche des jointures externes :
gauche jointure externe avec Generics
SubSonic.SqlQuery query = DB.Select(Aggregate.GroupBy("CompanyName"))
.From<Customer>()
.LeftOuterJoin<Order>();
gauche jointure externe avec le schéma
SubSonic.SqlQuery query = DB.Select(Aggregate.GroupBy("CompanyName"))
.From(Customer.Schema)
.LeftOuterJoin(Order.CustomerIDColumn, Customer.CustomerIDColumn);
gauche jointure externe avec cordes magiques
SubSonic.SqlQuery query = DB.Select(Aggregate.GroupBy("CompanyName"))
.From("Customers")
.LeftOuterJoin("Orders");
Il semble que vous favorisez « jointure externe gauche avec le schéma. » Notez cependant que chacune des options ci-dessus renvoie une référence SubSonic SqlQuery. Je ne suis pas sûr que vous pouvez faire comme vous l'espérez, retourner une liste de Tran, avec la syntaxe LeftOuterJoin. Vous pouvez consulter les documents à ce sujet.
MISE À JOUR:
par votre commentaire, je pense que nous pouvons vous rapprocher de ce que vous voulez. Le .LeftOuterJoin excepts arguements de type TableSchema.TableColumn et vous pouvez entraîner une liste générique en ajoutant .ExecuteTypedList <> à la sélection.
List<Tran> result = DB.Select()
.From<Trans>()
// parameters are of type TableSchema.TableColumn
.LeftOuterJoin(Trans.TransIDColumn, UserTrans.TransIDColumn);
.ExecuteTypedList<Tran>();
Merci pour vos commentaires. Je suppose que je étais perplexe par le fait que mes objets de tables n'ont pas de propriétés de schéma dans la version 3.0.0.3, ni je peux trouver des références de colonne de type IColumn. Je trouve que la seule méthode qui fonctionne dans la version 3 est celle qui utilise Generics. Le document de référence semble ne concerner que la version 2. Merci de m'avoir indiqué la bonne direction. – jcomet
@jcomet - S'il vous plaît voir mes mises à jour en ligne avec ma réponse. Bonne chance. –
Merci encore Ben, vous avez été très utile. Je pense, cependant, que vos exemples sont corrects pour 2. *, mais pas pour 3. *. Mes types d'arguments LeftOuterJoin sont SubSonic.Schema.IColumn. Peut-être que ma configuration est incorrecte. – jcomet