DevForce 2010 doesn't talk directly to back-end databases: it talks to EF, and EF really wants your code to be independent of the back-end database. So EF lets you talk to it in LINQ and in ESQL.
ESQL is mostly useful for special situations where you need to compose a query as a text string, so let's talk about what you can do with LINQ. You can query against any entity defined in the EF model (and mapped there to a back-end table), returning arbitrary subsets of the entity's properties. You can also do even more interesting things like the following:
var q = _em1.Employees.Select(e => new { e.LastName, e.OrderSummaries }); |
The above, when exercised, will return an IEnumerable<a'>, where a' is an anonymous type. This particular anonymous type has two properties: a string and a RelatedEntityList<OrderSummary>.
DevForce also lets you query against Plain Old C Objects (POCOs). You create a server-side class with a method that returns an IEnumerable<Foo>, where a Foo is your plain old C object. This is documented today in the Business Object Persistence - Advanced document, in a section named "POCO Support in DevForce"; in the next release of DevForce it will be a stand-alone document named "POCO Support in DevForce".
What you cannot do is to use EF or DevForce to query against back-end database tables that are neither part of your EF model nor accessed by one of your server-side methods that returns POCOs.