ASP.NET MVC + Simple.Data + MySQL

Do dzisiejszego wpisu zainspirowała mnie aplikacja, którą współtworzymy z Tymkiem Kęstowiczem. Potrzebowaliśmy połączyć naszą aplikację napisaną w MVC z bazą danych (tu wybór padł na MySQL). Zdecydowanie chcieliśmy uniknąć strzelania z armaty do komarów – Entity Framework, nHibernate – ponieważ struktura naszej bazy była niewielka (dosłownie kilka tabel).

Po zastanowieniu się nad potencjalnymi rozwiązaniami, wybór padł na bibliotekę Simple.Data, czyli ORM bez ORM-a. Szczerze powiedziawszy, dawno nie widziałem tak prostej konfiguracji aplikacji z bazą danych. Na czym to wszystko polega?

Do Web.configa dodajemy connection string do naszej bazy danych. Następnie dodajemy referencję do biblioteki Simple.Data.Core i Simple.Data.MySql (w przypadku naszej bazy). Oprócz tego potrzebujemy referencji do MySql.Data. Po prawidłowym skonfigurowaniu zaczynamy zabawę – załóżmy, że dysponujemy w bazie danych tabelą miast – Cities. Następnie chcemy pobrać z bazy te miasta. Cała operacja wygląda w następujący sposób:

 public IEnumerable<dynamic> GetAllCities()
 {
 return Database.Open().Cities.All();
 }

Database.Open() otwiera połączenie z naszą wcześniej skonfigurowaną bazą danych. Następnie, po kropce wpisujemy „Cities”, które zostanie dynamicznie zresolvovane podczas wykonywania zapytania. All() jak łatwo się domyśleć, zwróci wszystkie dane z tabeli.

No dobrze. Co zrobić, gdy chcemy wyciągnąć z bazy tylko niektóre dane o zadanym parametrze? Zakładając, że każde miasto ma w bazie danych kolumnę CityCode -> dla Warszawy WAW, dla Krakowa KRK:

 public dynamic GetCityByCode(string cityCode)
 {
 return Database.Open().Cities.FindBy(CityCode: cityCode);
 }

„CityCode:” to właśnie kolumna w naszej bazie danych, natomiast cityCode – zadany parametr, na podstawie którego wyciągamy interesujące nas miasto.

Naprawdę polecam, gdyż jest to świetne rozwiązanie dla niewielkich aplikacji. Po więcej odsyłam do pełnej dokumentacji 🙂

Jedna uwaga do wpisu “ASP.NET MVC + Simple.Data + MySQL

Zostaw komentarz

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj /  Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj /  Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj /  Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj /  Zmień )

Connecting to %s