Para responder a la parte "usar algo como jpa con C# " Recomiendo cambiar el enfoque. JPA, como se destaca en los comentarios, es un conjunto de especificaciones para permitir la interoperabilidad de ORM.
Mientras existe NPeristence, tratando de llenar el espacio entre Java y C#, no tiene sentido utilizar "otro JPA" cuando la industria no lo adopta como una API estándar.
Es como si pidiera usar características del lenguaje Java en .NET (como "can I implement an anonymous interface in .NET?"). Debe aceptar el hecho de que actualmente no existe un JPA estándar de facto para C# porque 1) hay dos "proveedores" principales de ORM (NHibernate y Entity Framework) y 2) EF no adopta NPA.
Si necesita interoperabilidad de base de datos entre MSSQL y MYSQL, bastará con uno de los dos productos de código abierto anteriores, pero es todo un aprendizaje.
Mi jefe dijo que para aprender Java debo comenzar a olvidar C#. Le sugiero lo contrario: aclare su mente, comience desde cero y vea que hay poderosas herramientas disponibles para sus necesidades.
es esto ¿verdad? Pensé que JPA era una especificación? – Nix
Sí, JPA es una especificación, junto con algunas clases concretas que permiten a los desarrolladores acceder a su implementación preferida sin tener que usar ningún código específico de implementación ... a menos que lo deseen. Java tiene algunas especificaciones como esa. Otros ejemplos incluyen JAXB para marshalling/unmarshalling XML y JAXP para transformación, validación, consultas, etc. de XML. Cosas útiles. – spaaarky21