LINQ to SQL w ASP.net – wprowadzenie

Rozszerzenie LINQ to SQL w ASP.net daje nam możliwość wygodnego manipulowania danymi zawartymi w bazie danych z poziomu kontrolek jak i obiektowego kodu programu. Technologia LINQ to SQL opiera się o źródła danych oraz wspierające je klasy.

Dzięki LINQ to SQL w ASP.net nie musimy odwoływać się bezpośrednio do bazy danych, posługiwać się przy tym składnią SQL w postaci czystych stringów, co wiązało by się z brakiem wsparcia ze strony IntelliSense. LINQ to SQL umożliwia nam obiektowe odwołanie się do wybranych tabel, funkcji czy procedur naszej bazy danych.

Jesteśmy w stanie wyświetlić dane naszej tabeli bez użycia nawet jednej linii kodu. Sam kod natomiast jest przejrzysty i wygodny, dzięki czemu możemy dodawać nowe rekordy do naszej bazy danych lub z poziomu kodu dokonywać selekcji danych czy generować zapytania SQL.

Źródła danych w LINQ to SQL w ASP.net

Chcąc skorzystać z LINQ to SQL na naszej stronie musimy powiązać obiekt LINQ z naszą bazą danych. W tym celu w oknie Solution Explorer z menu kontekstowego naszego projektu wybieramy Add New Item -> LINQ to SQL Classes i tworzymy nową klasę LINQdb.dbml. W oknie Solution Explorer pojawi się nowy folder App_Code wraz z klasą LINQ reprezentującą nasze powiązanie z bazą danych.

Linq to SQL Classes

Linq to SQL Classes

Po otwarciu obiektu LINQdb.dbml z okna Solution Explorer możemy przeciągnąć dowolną tabelę, procedurę, funkcję itp. bazy danych z okna Serwer Explorer na formatkę obiektu LINQdb.dbml. Widzimy wówczas jej wizualną reprezentację.

Formatka Linq to SQL Classes

Formatka Linq to SQL Classes

Korzystając z kontrolek GridView oraz LinqDataSource jesteśmy w stanie przy pomocy prostego powiązania odczytać dane z tabeli bazy danych. Po utworzeniu kontrolki LinqDataSource możemy z podglądu wizualnego naszej strony kliknąć na rozwijane menu przypisane do kontrolki LinqDataSource i wybrać polecenie Configure Data Source.

LinqDataSource

LinqDataSource

W oknie konfiguracyjnym jesteśmy w stanie wybrać obiekt kontekstowy naszej bazy danych, a następnie wybrać tabelę i pola, które chcemy powiązać wraz z możliwością filtrowania i grupowania. Warto już teraz wejść w opcje Advanced i wybrać opcje umożliwiające automatyczne usuwanie, wstawianie i edycję danych. Aby mieć możliwość edytowania i usuwania rekordów przy pomocy kontrolki GridView musimy wybrać wszystkie pola naszej tabeli przy pomocy pola wyboru gwiazdki.

Configure Data Source

Configure Data Source

Teraz z dodatkowego menu opcji kontrolki GridView w oknie wizualnego podglądy strony możemy wybrać ChoseDataSource i wybieramy w naszym przypadku kontrolkę LinqDataSource1. Wybierzemy również dodatkowe opcje z tego menu odnoszące się do możliwości usuwania, edytowania, sortowania i stronicowania danych.

GridView

GridView

W kodzie kontrolek warto zwrócić uwagę na linię [4], która definiuje DataKeyNames, dzięki któremu jesteśmy w stanie dokonać edycji czy usuwania rekordu. Jeżeli LINQ to SQL w odniesieniu do kontrolki GridView nie jest w stanie wykonać tych czynności, a wszystkie opcje zostały zaznaczane prawidłowo, należy sprawdzić, czy istnieje prawidłowo wypełniona właściwość DataKeyNames dla kontrolki GridView.

W celu wyświetlenia danych często wykorzystuje się również kontrolkę DropDownList. Podpięcie źródła danych w tym przypadku wygląda bardzo podobnie, należy zwrócić uwagę jednak na właściwości DataTextField (wyświetla wartości tekstowe w kontrolce) oraz DataValueField (umożliwia wyciągnięcie powiązanych danych na podstawie wartości tekstowych kontrolki).

Dzięki takiej konfiguracji kontrolki jesteśmy w stanie przy pomocy zdarzenia SelectedIndexChanged dokonać wyświetlenia ceny produktu wybranego po nazwie.

Programowa obsługa LINQ to SQL w ASP.net

Dodawanie nowego rekordu do tabeli również nie stanowi większego problemu, jeżeli pozna się schemat postępowania z klasami LINQ. Interfejs naszej aplikacji jest jak najbardziej standardowy, z pominięciem ProduktID, który generowany jest automatycznie przez bazę SQL. O samych bazach SQL wspomnę już niedługo.

Dodanie rekordu do bazy danych

Dodanie rekordu do bazy danych

W pierwszej kolejności musimy utworzyć obiekt kontekstu naszej bazy danych [3] oraz obiekt przedstawiający tabelę, do której chcemy się odnieść [4]. Wypełnianie nowego rekordu naszej tabeli jest jak najbardziej obiektowe i odbywa się przy pomocy właściwości utworzonego obiektu [8, 9]. Następnie konieczne jest przypisanie nowego rekordu tabeli do kontekstu naszej bazy danych [11] i zatwierdzenie zmian [12]. Warto również odświeżyć zawartość kontrolki GridView [13] oraz DropDownList przy [14] przy pomocy metody DataBind.

Jak widzimy do podstawowej obsługi LINQ to SQL w ASP.net nie musimy korzystać z dużej ilości kodu, ogranicza się on do koniecznego minimum i wystarcza w zupełności do podstawowych zadań. Jesteśmy w stanie filtrować informacje, sortować je automatycznie, dodawać nowe wartości do bazy danych. Po zapoznaniu się z podstawową funkcjonalności bardziej skomplikowane operacje również nie będą stanowiły większego problemu.

Przykładowy projekt znajduje się pod linkiem: LINQ to SQL – wprowadzenie

Menu LeftMenu, login: admin, hasło: haselko

Loading Disqus Comments ...
Loading Facebook Comments ...