Table name prefix when selecting Dictionary<string, object>

If I have something like this:

var query = db.From<Table1>().Join<Table2>();
var results = db.Select<Dictionary<string, object>>(query);

If Table1 and Table2 both have a column named status, the resulting dictionary will only have one status key with the value from one of the tables. Is there a way to force the keys in the resulting dictionary to prefix the table name? So instead of having results["status"] I would have something like results["table1status"] and results["table2status"]?

I saw that I can do this before doing the select, which seemed quite promising at first:

query.PrefixFieldWithTableName = true;

But it didn’t seem to change anything.

No that’s not for untyped Dictionaries, it’s for being able to specify the table + property name in a typed POCO, e.g:

class JoinedTable
    public string Table1Status { get; set; }
    public string Table2Status { get; set; }

var results db.Select<JoinedTable>(db.From<Table1>().Join<Table2>());

You could instead provide a custom Select:

q.Select("Table1.Status as Status1, Table2.Status as Status2, ...")

Wouldn’t your JoinedTable example work even without explicitly setting PrefixFieldWithTableName? The documentation mentions the default mapping uses table name prefixes as a fallback.

It’s for mapping to typed POCO’s as shown in the example above.

It doesn’t prefix every property only the ones that’s needed which has to be present on the typed POCO you’re selecting into - that’s what it looks at to know whether to fallback or ignore.