2010-05-03 14 views
12

Myślę, że JPA jest ładne i wygodne (nie wspominając już o standaryzacji, ponieważ kiedyś każdy indywidualny programista robił swoje rzeczy z połączeniem jdbc).Co to jest odpowiednik JPA w .NET?

Chciałbym użyć czegoś takiego jak jpa z C# do mysql i sqlserver.

+1

czy to prawda? Myślałem, że JPA jest specyfikacją? – Nix

+0

Tak, JPA to specyfikacja, wraz z pewnymi konkretnymi klasami, które pozwalają programistom uzyskać dostęp do ich implementacji z wyboru bez konieczności używania jakiegokolwiek kodu specyficznego dla implementacji ... chyba że zechcą. Java ma kilka takich specyfikacji. Inne przykłady to JAXB do porządkowania/rozpraszania XML oraz JAXP do transformacji, sprawdzania poprawności, wyszukiwania zapytań XML itp. Przydatne rzeczy. – spaaarky21

Odpowiedz

5

Czy JPA nie tylko Java ORM?

.NET posiada wiele narzędzi ORM, mianowicie

a także mój ulubiony

+1

SubSonic również zasługuje na umieszczenie na liście. –

+0

Aktywny rekord jest aktywnym rekordem zamku i znajduje się na szczycie NHibernate. FluentNHibernate to kolejna opcja, która znajduje się na szczycie NHibernate. –

+10

JPA to specyfikacja, którą ORM powinna implementować. To nie jest ORM samo w sobie. – Greg

8

JPA jest tylko specyfikacja dla obiektów Trwałość i nie jego realizacja. Możesz zobaczyć npersistence jako odpowiednik tego na .NET, ale również musisz znaleźć ORM, która zaimplementowała tę specyfikację.

3

istnieć odpowiednik dla C# i to się nazywa NPA (.NET Persistence API), oto kilka linków:

+0

Produkt jest martwy i nigdy nie zyskał żadnej przyczepności od czasu jego oczywistego wprowadzenia 5 lat temu –

3

Aby odpowiedzieć na część „użyć czegoś jak jpa z C# " Polecam zmianę podejścia. JPA, jak podkreślono w komentarzach, to zestaw specyfikacji umożliwiających interoperacyjność ORM.

Podczas NPeristence istnieje, starając się wypełnić lukę między Java i C#, nie ma sensu w korzystaniu „kolejny JPA” gdy przemysł nie przyjmie go jako standardowego API.

To tak, jakby poprosić o korzystanie z funkcji języka Java w .NET (np. "can I implement an anonymous interface in .NET?"). Musisz żyć z faktem, że de facto standardowy ekwiwalent JPA dla C# obecnie nie istnieje, ponieważ 1) istnieją dwa główne "dostawcy" ORM (NHibernate i Entity Framework) i 2) EF nie przyjmuje NPA.

Jeśli potrzebujesz interoperacyjności bazy danych między MSSQL i MYSQL, wystarczy jeden z dwóch produktów o otwartym kodzie źródłowym, ale warto się tego nauczyć.

Mój szef powiedział, że aby nauczyć się języka Java, muszę zacząć zapomnieć o C#. Proponuję ci coś przeciwnego: oczyść umysł, zacznij od zera i zobacz, że dostępne są potężne narzędzia do twoich potrzeb.

0

.NET Persistence Api jest odpowiednikiem w .Net. Zarówno JPA, jak i jego odpowiednik .Net są zestawami specyfikacji, które mogą implementować dostawcy ORM lub społeczność open source. Hibernate jest jedną z tych implementacji, tak jak mamy Entity Framework w .Net. Gdy przełączasz się między dwoma strukturami ORM zgodnymi z JPA, nie spodziewałbyś się żadnych zmian w kodzie w celu uwzględnienia tej zmiany, ponieważ obie są zgodne z tą samą specyfikacją podstawową.

Powiązane problemy