PB15.Net allows you to paint "joins" between two OData entities. I've got some basic questions about this functionality.
1) The detection of the join columns seems to be based solely on matching column names. Since the $metadata document specifically lists the valid associations between two entities, maybe this would be a better place to look to build the initial join criteria.
2) You're allowed to select multiple tables/entities when initially building the query (and the joins are created between matching column names, as stated above). But if you want to add tables to an existing select statement, you get the message that the currently selected table will be replaced. This implies that you can't do joins, and only single-table queries are allowed... If that's true, then don't allow us to select more than one table when initially constructing the query.
3) I was able to create a query that joined two tables on the appropriate columns, but the resultset only contained columns from the "parent" table.
4) What about identity columns, and retrieving the newly created values following INSERT (PUT) calls? I don't think OData has the concept of "@@identity" or "default autoincrement", so I'm not sure how that would work.
5) How would this be implemented anyway? Using the $expand OData operative would execute on the server, but brings back a nested XML or JSON document, and the datawindow needs a flat resultset. I wouldn't be averse to have it work exactly like SQL, where the selected columns from the parent table are repeated for each joined child row.
-Paul-