2010-05-03 39 views
12

Creo que JPA es agradable y conveniente (sin mencionar la estandarización, ya que solíamos hacer que cada programador individual hiciera lo suyo con una conexión jdbc).¿Cuál es el equivalente de JPA en .NET?

Me gustaría usar algo como jpa con C# para mysql y sqlserver.

+1

es esto ¿verdad? Pensé que JPA era una especificación? – Nix

+0

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

Respuesta

5

no es sólo un ORM JPA Java?

.NET tiene muchas herramientas ORM, a saber

y además mi favorito

+1

SubSonic también merece estar en la lista. –

+0

Active Record es Castle Active Record y se encuentra en la parte superior de NHibernate. FluentNHibernate es otra opción que se sienta encima de NHibernate. –

+10

JPA es una especificación que debe implementar un ORM. No es un ORM en sí mismo. – Greg

8

APP es sólo una especificación para objetos de persistencia y no su aplicación. Puede ver npersistence como equivalente de eso en .NET pero también debe encontrar un ORM que implementó esta especificación.

3

Existe el equivalente para C# y se llama NPA (.NET Persistence API), aquí algunos enlaces:

+0

El producto está muerto y nunca ganó ninguna tracción desde su aparente introducción hace 5 años –

3

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.

0

.Net Persistence Api es el equivalente en .Net. Tanto JPA como su contraparte de .Net son un conjunto de especificaciones que los proveedores de ORM o la comunidad de código abierto pueden implementar. Hibernate es una de esas implementaciones, como tenemos Entity Framework en .Net. Cuando cambia entre dos marcos ORM que se adhieren a JPA, no esperaría ningún cambio en el código para acomodar este cambio ya que ambos siguen la misma especificación subyacente.

Cuestiones relacionadas