Olá! companheiro,
Eu usei XPO muito alguns anos há e ainda tenho uma aplicação em um cliente sobre aquela.
De minha experiência, XPO trabalha consideravelmente bem se suas necessidades da pergunta não são demasiado complexas.
A distribuição é igualmente grande, porque cria seu esquema automaticamente se a base de dados não é encontrada, mas geralmente com o esquema vão alguns dados do defeito demasiado e nós terminamos ainda a necessidade criar certificados.
Uma outra diferença é que trabalho de XPO no sentido oposto da maioria de ORMs.
Geralmente a lógica de ORM é criar a base de dados e gerará as classes, em XPO você cria as classes e gera a base de dados que pode ser muito trabalho a configurar especialmente se o DB é grande e com muitas relações.
A estrutura da entidade (EF), em minha opinião é muito mais flexível quando vem à pergunta.
XPO igualmente tem um Linq a XPO mas embora olhe agradável, sente-o como mais pesado a mim.
A integração com procedimentos e funções do SQL é transparente e a vista de modelagem é maneira melhor do que do que LINQ precedente à versão do SQL (que olhares como seu ir morrer logo o BTW).
Igualmente em EF, o código é gerado using os moldes T4, que é uma língua templating.
Você tem realmente o acesso a estes moldes assim que você pode personalizá-los se você o precisa de gerar mais código, algo específico para seu projeto.
Você igualmente tem o acesso a toda a “ação”, todo o código é gerado, você pode eliminar erros de tudo que acontece atrás das cenas.
Assim, para mim, e como um ventilador grande de DevX, eu não sou satisfeito mas eu prefiro EF do que XPO.
Um tho da nota lateral é que eu igualmente uso SubSonic, um gerador feito sob encomenda que eu faça e igualmente MyGeneration.
Todos os geradores de código frescos.
Elogios!
Alex