Hi mate,
I used XPO a lot a few years ago and still have an application on a customer on top of that.
From my experience, XPO works pretty well if your query needs are not too complex.
The deployment is also great, as it creates your schema automatically if the database isn't found, but usually with the schema goes some default data too and we end still needing to create scripts.
Another difference is that XPO work on the opposite direction of most ORMs.
Usually the ORM logic is to create the database and it will generate the classes, on XPO you create the classes and it generates the database which can be a lot of work to configure specially if the DB is big and with a lot of relations.
Entity Framework (EF), in my opinion is a lot more flexible when it comes to querying.
XPO also has a Linq to XPO but although it looks nice, feels like heavier to me.
The integration with SQL Procedures and Functions is transparent and the modeling view is way better than than previous LINQ to SQL version (which looks like its going to die soon btw).
Also on EF, the code is generated using T4 templates, which is a templating language.
You actually have access to these templates so you can customize them if you need it to generate more code, something specific for your project.
You also have access to all the "action", all the code is generated, you can debug everything that happens behind the scenes.
So, for me, and as a big DevX fan, I'm not pleased but I prefer EF than XPO.
A side note tho is that I also use SubSonic, a custom generator that I've made and also MyGeneration.
All cool code generators.
Cheers!
Alex