2010-05-03 9 views
12

Penso che JPA sia bello e conveniente (per non parlare della standardizzazione, dato che ogni singolo programmatore faceva la propria cosa con una connessione jdbc).Qual è l'equivalente di JPA in .NET?

Vorrei usare qualcosa come jpa con C# su mysql e sqlserver.

+1

è giusto? Pensavo che l'JPA fosse una specifica? – Nix

+0

Sì, JPA è una specifica, insieme ad alcune classi concrete che consentono agli sviluppatori di accedere alla loro implementazione di scelta senza dover utilizzare alcun codice specifico per l'implementazione ... a meno che non lo desiderino. Java ha alcune specifiche del genere. Altri esempi includono JAXB per XML marshalling/unmarshalling e JAXP per trasformazione, validazione, interrogazione, ecc. XML. Cose utili. – spaaarky21

risposta

5

non è JPA solo un ORM Java?

.NET ha molti strumenti ORM, vale a dire

e più il mio preferito

+1

Anche SubSonic merita di essere incluso nell'elenco. –

+0

Active Record è Castle Active Record e si trova sopra NHibernate. FluentNHibernate è un'altra opzione che si trova sopra NHibernate. –

+10

JPA è una specifica che deve essere implementata da un ORM. Non è un ORM in sé. – Greg

8

APP è solo una specifica per gli oggetti di persistenza e non la sua attuazione. Puoi vedere npersistence come equivalente di quello su .NET ma devi anche trovare uno ORM che ha implementato questa specifica.

3

Esiste l'equivalente per C# e si chiama NPA (NET Persistence API), qui alcuni link:

+0

Il prodotto è morto e non ha mai ottenuto alcun tipo di trazione dopo la sua apparente introduzione 5 anni fa –

3

Per rispondere a una parte "per usare qualcosa come jpa con C# " Raccomando di cambiare approccio. JPA, come evidenziato nei commenti, è un insieme di specifiche per consentire l'interoperabilità ORM.

Mentre NPeristence esiste, cercando di colmare il divario tra Java e C#, non ha senso utilizzare "un altro JPA" quando l'industria non lo adotta come API standard.

È come se chiedeste di utilizzare le funzionalità del linguaggio Java in .NET (come "can I implement an anonymous interface in .NET?"). Devi convivere con il fatto che un equivalente standard JPA per C# non esiste al momento perché 1) ci sono due principali "venditori" di ORM (NHibernate ed Entity Framework) e 2) EF non adotta l'NPA.

Se è necessaria l'interoperabilità DB tra MSSQL e MYSQL, uno dei due prodotti open source di cui sopra sarà sufficiente, ma è tutto da imparare.

Il mio capo ha detto che per imparare Java devo iniziare a dimenticare C#. Ti suggerisco il contrario: chiarisci la mente, inizia da zero e osserva che sono disponibili strumenti potenti per le tue esigenze.

0

. NET Persistenza Api è l'equivalente in. Net. Sia JPA che la sua controparte .Net sono un insieme di specifiche che i fornitori di ORM o la comunità open source possono implementare. Hibernate è una di quelle implementazioni come abbiamo Entity Framework in .Net. Quando si passa da due framework ORM che aderiscono a JPA, non ci si aspetterebbe che eventuali modifiche al codice soddisfino questa modifica poiché entrambe seguono la stessa specifica sottostante.

Problemi correlati