2011-07-23 16 views
49

Czy to możliwe, że Entity Framework obsługuje bazę danych MongoDb? Może ktoś napisze EF MongoDb Provider?Entity Framework i MongoDb

+0

Jakakolwiek zaakceptowana odpowiedź ?! –

Odpowiedz

47

Krótka odpowiedź - nie, jest to na pewno możliwe, ale nie uzasadnione.

MongoDB jest bazą danych dokumentów i nie obsługuje żadnych fizycznych relacji między kolekcjami. EF jest dobrym rozwiązaniem dla relacyjnych baz danych, takich jak SQL, MySQL itp. MongoDB działa szybciej z dokumentami osadzonymi. To tylko dwa różne podejścia.

7

Jestem wielkim fanem Entity Framework, więc kiedy po raz pierwszy wypróbować MongoDB I utworzeniu biblioteki o nazwie "MongoDB.Dynamic", który ma podejście obok EF Code First. MongoDB nie ma fizycznego związku między kolekcjami, ale można go symulować. MongoDB.Dynamic ma funkcję znaną jako Eager Loading, która pozwala na automatyczne konfigurowanie relacji między kolekcjami i automatyczne ładowanie powiązanych dokumentów, jeśli jednostka ma konwencyjną strukturę. Można spróbować odczytać jakąś dokumentację na MongoDB.Dynamic

+0

Zaktualizowany link: http://mongodbdynamic.codeplex.com/ – jocull

+0

@jocull thanxs. Link zaktualizowany –

0

Nie sugeruję używania starej wersji dostawcy MongoDb, która używa LINQ. Najlepszy i stabilny sterownik C# MongoDb jest oficjalnym sterownikiem MongoDb 2.0 dla C#, który używa mechaniki Builders.

Stary sterownik LINQ ma wiele ograniczeń z niewygodnym i wolnym mechanizmem wstawiania zbiorczego.

+0

Witam DotNetGoose - twoja odpowiedź wygląda użytecznie, ale trochę myląca; czy mógłbyś dodać linki do kopii zapasowej tego, co mówisz, na przykład do oficjalnej dokumentacji sterownika MongoDB dla C? –

+0

@VinceBowdren Cześć, zrobiłem to na podstawie własnego doświadczenia ze współpracy ze starym i nowym sterownikiem MongoDb. Nie pamiętam szczegółów, to było rok temu, ale stary sterownik ma wolniejszą wydajność, bardzo niewygodną mechanikę operacji zbiorczych i kilka błędów i nieoczywistych zachowań. –