Мое личное предпочтение в том, как это сделать, - создать представление SQL, которое присоединяется к таблице и создает дозвуковой объект, который сопоставляется с ней.
Вы также можете использовать ExecuteTypedList с пользовательским объектом, например:
public class TestObject{
int Column1 { get; set; }
int Column2 { get; set; }
}
List<TestObject> testObjects = DB.Select(Table1.Columns.Column1, Table2.Columns.Column2)
.From(Table1.Schema)
.InnerJoin(Table2.Schema)
.ExecuteTypedList<TestObject>();