Вы должны предоставить столбцы на основе таблиц, включенных в объединение. Например, если вы присоединяетесь к Таблице Trans и Таблице UserTrans в TransId, ваша инструкция будет выглядеть примерно так:
SubSonic.SqlQuery query = DB.Select()
.From(Trans.Schema)
.LeftOuterJoin(Trans.TransIDColumn, UserTrans.TransIDColumn);
В соответствии с документами SubSonic Simple Query Tool у вас есть три варианта, когда речь идет о левом внешнем объединении:
левое внешнее соединение с родовыми элементами
SubSonic.SqlQuery query = DB.Select(Aggregate.GroupBy("CompanyName"))
.From<Customer>()
.LeftOuterJoin<Order>();
левое внешнее соединение со схемой
SubSonic.SqlQuery query = DB.Select(Aggregate.GroupBy("CompanyName"))
.From(Customer.Schema)
.LeftOuterJoin(Order.CustomerIDColumn, Customer.CustomerIDColumn);
левое внешнее соединение с волшебными струнами
SubSonic.SqlQuery query = DB.Select(Aggregate.GroupBy("CompanyName"))
.From("Customers")
.LeftOuterJoin("Orders");
Похоже, вы поддерживаете "Левое внешнее соединение со схемой". Однако обратите внимание, что каждый из приведенных выше параметров возвращает ссылку на SubSonic SqlQuery. Я не уверен, что вы можете сделать, как вы надеетесь, вернуть список Tran с синтаксисом LeftOuterJoin. Вы можете обратиться к документации по этому вопросу.
UPDATE:
На ваш комментарий, я думаю, мы сможем приблизить вас к тому, что вы хотите. .LeftOuterJoin исключает аргументы типа TableSchema.TableColumn, и вы можете создать общий список, добавив .ExecuteTypedList <> к выбору.
List<Tran> result = DB.Select()
.From<Trans>()
// parameters are of type TableSchema.TableColumn
.LeftOuterJoin(Trans.TransIDColumn, UserTrans.TransIDColumn);
.ExecuteTypedList<Tran>();