Badanie technologii LINQ



Podobne dokumenty
Programowanie obiektowe

LINQ TO XML. Autor ćwiczenia: Marcin Wolicki

TEMAT ĆWICZENIA Zapoznanie z technologią LINQ

Leszek Stasiak Zastosowanie technologii LINQ w

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

Db4o obiektowa baza danych wersja.net

Language INtegrated Query (LINQ)

PHP: bazy danych, SQL, AJAX i JSON

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Badanie technologii LINQ

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

SIECI KOMPUTEROWE I BAZY DANYCH

15. Funkcje i procedury składowane PL/SQL

Instrukcja laboratoryjna

SIECI KOMPUTEROWE I BAZY DANYCH

STWORZENIE BIBLIOTEKI SŁUŻĄCEJ DO WCZYTYWANIA

INFORMATOR TECHNICZNY WONDERWARE. Ograniczenie wyświetlania listy zmiennych w przeglądarce zmiennych ActiveFactory

Problemy techniczne SQL Server. Zarządzanie bazami danych na serwerze SQL

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Programowanie MorphX Ax

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

Problemy techniczne SQL Server

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

Instrukcja laboratoryjna cz.6

Microsoft.NET: LINQ to SQL, ASP.NET AJAX

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

LINQ TO SQL w dużym skrócie jest to zintegrowany język zapytao pozwalający na mapowanie relacyjnych baz danych na model obiektowy.

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

Programowanie obiektowe

Podstawowe funkcje dodatku linq w C#

Tworzenie zapytań do Microsoft SQL Server

Problemy techniczne SQL Server

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Programowanie obiektowe

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Programowanie obiektowe

Problemy techniczne SQL Server. Zarządzanie bazami danych na serwerze SQL

Database Connectivity

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Microsoft SQL Server Podstawy T-SQL

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych. Paweł Paduch paduch@tu.kielce.pl

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

Programowanie w Ruby

Język SQL, zajęcia nr 1

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

LINQ - PRZEŁOM W PROJEKTOWANIU APLIKACJI BAZODANOWYCH

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Wykład 12. Programowanie serwera MS SQL 2005 w C#

Podstawy programowania III WYKŁAD 2

Wykład 8: klasy cz. 4

Założenia do ćwiczeń: SQL Server UWM Express Edition: \SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

Oracle PL/SQL. Paweł Rajba.

Oracle11g: Wprowadzenie do SQL

Baza danych sql. 1. Wprowadzenie

QUERY język zapytań do tworzenia raportów w AS/400

Laboratorium 1 - Programowanie proceduralne i obiektowe

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Wprowadzenie do programowania

5.4. Tworzymy formularze

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne

Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

Bazy danych Ćwiczenia projektowe

Protokół JDBC współpraca z relacyjnymi bazami danych lab3

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Systemy GIS Tworzenie zapytań w bazach danych

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Zaawansowane aplikacje WWW - laboratorium

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner

ZAPOZNANIE SIĘ ZE SPOSOBEM PRZECHOWYWANIA

Dostęp do baz danych w ASP.NET.

SQL Server Configuration Manager centrum dowodzenia

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Lab.8: Podstawy języka SQL.

Bazodanowe usługi sieciowe w technologii ASP.NET. dr inż. Tomasz Tatoń

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Kostki OLAP i język MDX

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Aplikacje w środowisku Java

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści

Wykład 6 Dziedziczenie cd., pliki

Programowanie obiektowe

Programowanie po stronie serwera w SZBD. Robert A. Kłopotek Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW

Specyfikacja API Runtime BAS 3.0

akademia androida Składowanie danych część VI

1 Atrybuty i metody klasowe

Rozdział 3. Zapisywanie stanu aplikacji w ustawieniach lokalnych

Wykład 3 Składnia języka C# (cz. 2)

Kurs programowania aplikacji bazodanowych

BACKUP BAZ DANYCH MS SQL

Pakiety podprogramów Dynamiczny SQL

Podstawy programowania. Wprowadzenie

Transkrypt:

WEiI PK Katedra Inżynierii Komputerowej Badanie technologii LINQ Ćwiczenia z przedmiotu Obiektowe bazy danych Włodzimierz Khadzhynov 2010-03-02

Spis treści Wstęp... 3 LINQ to Objects... 3 LINQ to XML... 4 LINQ to SQL... 5 Generacja klas encyjnych dla LINQ to SQL.... 6 Modyfikacja kolumny w bazie... 10 Wstawianie danych.... 11 Pobieranie baz Northwind oraz Pub oraz dołączenie tych baz do MS SQL Server 2005.... 14 Zadania dwiczeniowe dla studenta... 15 1.LINQ to Object... 15 2.LINQ to XML... 15 3.LINQ to SQL z wykorzystaniem SQLMETAL... 15 4. LINQ to SQL z wykorzystaniem O/R Designera... 15 5.Wymogi do sprawozdania:... 15 2

Wstęp Celem ćwiczeń jest praktyczne badanie możliwości wykorzystania technologii LINQ dla dostępu do obiektów programowych i baz danych. LINQ (Language Integrated Query) to technologia zapytań zintegrowanych z językiem programowania. Dostęp do obiektów wewnątrz programu oraz do obiektów baz danych jest zrealizowany w sposób jednolity. LINQ to składnia, którą można wykorzystać do odpytywania różnych źródeł danych: baz danych sql, obiektów, dokumentów XML, encji itd. LINQ posiada pełne wsparcie dla transakcji, widoków, procedur przechowanych. Zapytania stają się częścią języka wspierającego.net 3.5 (C#, VB itd.). Jeśli LINQ ma działać, musi znać mapę całej bazy danych. Zapytanie LINQ zwraca kolekcję z przestrzeni nazw typów ogólnych. Kolekcja ta może być modyfikowana, a następnie zwrócona do źródła. Dzięki temu zachowywana jest pełna kontrola typów danych i ich konwersji w poszczególnych mechanizmach pośredniczących w pobieraniu danych. Dane mogą pochodzić z: bazy danych (LINQ to sql), dokumentów xml (LINQ to xml), zwykłych obiektów (LINQ to objects). Można zastosować na nich takie operacje jak: projekcje lub złączenia. LINQ zapożyczył z języka SQL sposób budowania zapytań. Każdy programista mający kontakt z językiem SQL nie będzie miał większych problemów z tworzeniem zapytań LINQ.Na rys.1 pokazany jest schemat architektury LINQ. Rys.1 LINQ to Objects Przykład zapytania LINQ do tablicy ciągów znaków jest pokazany w listingu 1. Listing 1. //Listing1_1(); 1. using System; 3

2. using System.Linq; 3. string[] greetings = { "hello world", "hello LINQ", "hello Politechnika" }; 4. var items = from s in greetings where s.endswith("linq") select s; 5. foreach (var item in items) 6. Console.WriteLine(item); 7. Console.ReadLine(); Z tego listingu można zrozumieć, że LINQ potrzebuje bibliotekę System.Linq. Zapytanie do danych w LINQ podobno jest formatu zapytania SQL, ale z odwrotnym porządkiem operatorów oraz zawiera konstrukcje s in w operatorze from. Oprócz tego każdy obiekt zawiera sporo dodatkowych metod. Zwłaszcza, obiekt s zawiera metodę EndsWith(). Główną zaletą LINQ jest pełna integracja z językiem C#. LINQ nie proponuje nowe klasy dla realizacji swoich zapytań. LINQ może pracować z istniejącymi kolekcjami oraz tablicami, którzy są skojarzone z istniejącymi klasami. Głównymi wymogami do tych kolekcji jest konieczność realizacji interfejsu IEnumerable <T>. Należy także wspomnieć o słowie kluczowym var - daje ono możliwości określania typu zmiennej lokalnej przy inicjalizacji - jest to jedna z nowości języka C# 3.0 i platformy.net 3.5. Typ zmiennej jest ustalany przez kompilator na podstawie wartości użytej do inicjalizacji, np.: var i = 5; -> int i =5; var lancuch = "Slowo"; -> string lancuch = "Slowo"; var liczby = new int [ ] {1,2,3}; -> int[ ] liczby = new int[ ] {1,2,3}; Trzeba jednak zauważyć, że inicjalizacja zmiennej musi nastąpić w tej samej linii kodu co deklaracja. Dzięki zastosowaniu słowa kluczowego var można odczytywać dane z nieznanych źródeł. Jest to bardzo przydatne przy stosowaniu zapytań LINQ. LINQ to XML Przykład zapytania do XML z wykorzystaniem LINQ to XML pokazany jest w listingu 2. Listing 2. //Listing1_2(); using System; using System.Linq; using System.Xml.Linq; XElement books = XElement.Parse( @"<books> <book> <title>bazy danych</title> <author>włodzimierz Khadzhynov</author> </book> <book> <title>pro WF: Windows Workflow in.net 3.0</title> <author>bruce Bukovics</author> </book> <book> <title>pro C# 2005 and the.net 2.0 Platform, Third Edition </title> <author>andrew Troelsen</author> </book> </books>"); 4

var titles = from book in books.elements("book") where (string)book.element("author") == "Włodzimierz Khadzhynov" select book.element("title"); foreach (var title in titles) Console.WriteLine(title.Value); Console.ReadLine(); W tym listingu plik XML jest załadowany do kolekcji obiektów books klasy XElement za dopomogą metody Parse. LINQ to XML pozwoli nie wykorzystać klasę XmlDocument. LINQ to SQL. LINQ to SQL pojawił się wraz z Visual studio 2008 i jest to technologia mapująca bazę danych SQL Server do postaci obiektowej, czyli O/RM (object relational mapping) oraz pozwalająca na odpytywanie bazy danych za pomocą składni LINQ. Za pomocą LINQ to SQL w bardzo łatwy sposób można wykonać CRUD (create, read, update, delete) na bazie danych. Na rys.2 jest pokazane w jaki sposób są przekształcone zapytania LINQ na poziomie aplikacji do zapytań serwera SQL. Rys.2 W listingu 3 jest pokazany przykład wykorzystania zapytania LINQ to SQL. Listing 3 //Listing1_3(); 1. using System.Linq; 2. using System.Data.Linq; 3. using nwind; //Northwind db = new Northwind(@"Data Source=.\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=SSPI;"); 4. Northwind db = new Northwind(@"server=localhost;uid=sa;pwd=asdf;database=Northwind"); 5. var custs = from c in db.customers where c.city == "London" select c; 6. foreach (var cust in custs) 7. Console.WriteLine("{0}", cust.companyname); 8. Console.ReadLine(); Tu została dodana w trzeciej linii kodu przestrzeń nazw nwind (linia 3). Ta przestrzeń nazw została zdefiniowana w pliku Nortwind.cs oraz zawiera klasę Northwind (patrz rys. 3). Klasa Northwind 5

dziedziczy klasę DataContext oraz prezentuje całą bazę danych w postaci zbioru klas encyjnych niezbędnych do odwołania do obiektów tabeli bazy danych. Rys.3. Generacja klas encyjnych dla LINQ to SQL. Plik Northwind.cs oraz przestrzeń nwind która zawiera klasę DataContext, mogą być stworzone w dwa sposoby: za dopomogą utility SQLMetal lub przez Object Relational Designer. Tworzenie klas encyjnych za dopomogą utility SqlMetal. Utilita SQLMetal jest w składzie DOTNET Framework 3.5 oraz może być wykorzystana tylko dla baz danych MS SQL Server. Przykład uruchomiania SQLMetal jest pokazany na rys.4. Rys.4 Po zakooczeniu programu sqlmetal plik northwind.cs trzeba dodad do projektu. 6

Tworzenie klas encyjnych za dopomogą Object Relational Designer. Designer pozwoli tworzyd klasy encyjne przez przeciąganie tablic bazy danych w pole projektu. Dla tworzenia tych klas są potrzebne następne kroki: 1. Dodad do projektu plik klas LINQ to SQL. Nazwa tego pliku może byd dowolną, ale lepiej skojarzyd je z nazwą bazy danych. Po kliknięciu ADD pojawi się puste okno Designera: 2. W oknie Server Explorer trzeba ustalid połączenie z bazą danych: 7

3. Trzeba przenieśd obiekty bazy danych do pola designera: 4. Prawy panel designera(na rys. niżej) służy dla tworzenia metod kontekstu. Na ten panel można przeciągnąd przechowywane procedury bazy danych: 8

Rezultaty tworzenia klas encyjnych będą w pliku mojabaza.dbml oraz w następnych plikach : Informacja o bazie danych klasy DataContext będzie wyznaczona w pliku app.config: Po stworzeniu pliku mojabaza.dbml są stworzone wszystkie klasy tablic bazy danych. To można spojrzed w oknie browsera obiektów: 9

Modyfikacja kolumny w bazie W listingu 4 jest pokazany przykład modyfikacji kolumny w tablice Customer bazy danych Northwind. W linii 18 został stworzony obiekt db klasy DataContext. Głównym przeznaczeniem klasy DataContext jest połączenie z bazą danych. Ta klasa zawiera serwisy dla sprawdzenia dokonanych zmian w bazie danych oraz dla realizacji tych zmian. Oddzielne tablice w bazie danych są właściwościami klasy DataContext, dlatego odwoład się do obiektów reprezentujących tablicę można w sposób pokazany w linii 19: db.customers. Listing 4. // Listing12_1() 1. using System; 2. using System.Collections.Generic; 3. using System.Data.Linq; 4. using System.Diagnostics; // For the StackTrace. 5. using System.Linq; 6. using System.Text; 7. using nwind; 8. namespace LINQChapter12 9. { 10. class Program 11. { 12. static void Main(string[] args) 13. { Listing12_1(); 14. } 15. static void Listing12_1() 16. { 17. Console.WriteLine("{0} : Begin", new StackTrace(0, true).getframe(0).getmethod().name); 10

// tworzenie obiektu DataContext. //Northwind db = new Northwind(@"Data // Source=.\SQLEXPRESS;Initial Catalog=Northwind;Integrated // Security=SSPI;"); 18. Northwind db = new Northwind(@"server=localhost;uid=sa;pwd=asdf;database=Northwind"); // Wywołanie użytkownika LAZYK. 19. Customer cust = (from c in db.customers 20. where c.customerid == "LAZYK" 21. select c).single<customer>(); 22. Console.WriteLine(cust.ContactName); // modyfikacja pola contact name. 23. cust.contactname = "Ned Plimpton"; 24. try 25. { // zachowanie zmian. 26. db.submitchanges(); 27. } // Detect concurrency conflicts. 28. catch (ChangeConflictException) 29. { // Resolve conflicts. 30. db.changeconflicts.resolveall(refreshmode.keepchanges); 31. } 32. Console.WriteLine("{0} : End", new StackTrace(0, true).getframe(0).getmethod().name); 33. Console.ReadLine(); 34. } 35. } 36. } Wykorzystanie LINQ to SQL dla baz danych można rozpatrywać dla następnych typów operacji z rekordami: Wstawiania Zapytania Modyfikacji Usuwania. Wstawianie danych. Obiekt DataContext odwzorowuje dowolne asocjacje Stworzenie egzemplarzy klasy encyjnej nie jest jeszcze wystarczającym dla ostatecznego wstawiania rekordu do bazy danych. Obiekt encyjny musi być wstawiany do kolekcji tablicy Table<T> (gdzie T typ klasy encyjnej) wszystkich kolekcji tablic kontekstu, lub musi być dodany do kolekcji EntitySet<T> odpowiedniego obiektu encyjnego, zawierającego inne obiekty. Przykład realizacji operacji wstawiania rekordów danych ze wstawianiem do kolekcji tablicy encji bazy danych jest pokazany w listingu 5. Listing 5. //Listing 14.1. 1. using System; 2. using System.Collections.Generic; 3. using System.Data.Linq; 4. using System.Diagnostics; // For the StackTrace. 5. using System.Linq; 6. using System.Text; 11

7. using nwind; 8. Console.WriteLine("{0} : Begin", new StackTrace(0, true).getframe(0).getmethod().name); // 1. Tworzenie the DataContext. //Northwind db = new Northwind(@"Data Source=.\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=SSPI;"); 9. Northwind db = new Northwind(@"server=localhost;uid=sa;pwd=asdf;database=Northwind"); 10. // 2. Tworzenie instancji obiektu encyjnego 11. Customer cust = new Customer 12. { 13. CustomerID = "LAWN", 14. CompanyName = "Lawn Wranglers", 15. ContactName = "Mr. Abe Henry", 16. ContactTitle = "Owner", 17. Address = "1017 Maple Leaf Way", 18. City = "Ft. Worth", 19. Region = "TX", 20. PostalCode = "76104", 21. Country = "USA", 22. Phone = "(800) MOW-LAWN", 23. Fax = "(800) MOW-LAWO" 24. }; // 3. Dodanie obiektu encyjnego do tabeli Customers. 25. db.customers.insertonsubmit(cust); // 4. Wywołanie metody SubmitChanges (). 26. db.submitchanges(); // 5. Zapytanie recordu. 27. Customer customer = db.customers.where(c => c.customerid == "LAWN").First(); 28. Console.WriteLine("{0} - {1}", customer.companyname, customer.contactname); // Ta część kodu odzyskiwa bazę danych od prowadzonych zmian 29. Console.WriteLine("Deleting the added customer LAWN."); 30. db.customers.deleteonsubmit(cust); 31. db.submitchanges();console.writeline("{0} : End", new StackTrace(0, true).getframe(0).getmethod().name); 32. Console.ReadLine(); W linii 9 jest stworzony kontekst bazy danych. Baza danych zawiera kolekcji tablic encji. W liniach 11 stworzona jest instancja obiektu customer. W linii 25 instancja obiektu customer została dodana do tablicy Customers za dopomogą metody InsertOnSubmit(). W linii 26 zmiany zostali wprowadzone do bazy danych. W liniach 27-28 wpisany rekord został ponownie wywołany z bazy danych i oddrukowany na konsoli. W liniach 29-30 wpisany rekord jest usunięty z bazy. Przypuścimy trzeba dodać instancję obiektu order. Można to z realizować w sposób pokazany w listingu 5 bezpośrednio do obiektu order. Można to zrobić w sposób inny, zwłaszcza można dodać ten obiekt do kolekcji orders wyznaczonej instancji obiektu Customer. W listingu 6 jest pokazany przykład wstawiania rekordu przez kolekcje obiektów skojarzonych z wyznaczonej encją. Listing 6. //Listing 14.2 using System; 1. using System.Collections.Generic; 2. using System.Data.Linq; 12

3. using System.Diagnostics; // For the StackTrace. 4. using System.Linq; 5. using System.Text; 6. using nwind; 7. Console.WriteLine("{0} : Begin", new StackTrace(0, true).getframe(0).getmethod().name); //Northwind db = new Northwind(@"Data Source=.\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=SSPI;"); 8. Northwind db = new Northwind(@"server=localhost;uid=sa;pwd=asdf;database=Northwind"); 9. Customer cust = (from c in db.customers where c.customerid == "LONEP" select c).single<customer>(); // Used to query record back out. 10. DateTime now = DateTime.Now; 11. Order order = new Order { CustomerID = cust.customerid, EmployeeID = 4, OrderDate = now, RequiredDate = DateTime.Now.AddDays(7), ShipVia = 3, Freight = new Decimal(24.66), ShipName = cust.companyname, ShipAddress = cust.address, ShipCity = cust.city, ShipRegion = cust.region, ShipPostalCode = cust.postalcode, ShipCountry = cust.country }; 12. cust.orders.add(order); 13. db.submitchanges(); 14. IEnumerable<Order> orders = db.orders.where(o => o.customerid == "LONEP" && o.orderdate.value == now); 15. foreach (Order o in orders) 16. { 17. Console.WriteLine("{0} {1}", o.orderdate, o.shipname); 18. } // This part of the code merely resets the database so the example can be // run more than once. 19. db.orders.deleteonsubmit(order); 20. db.submitchanges(); 21. Console.WriteLine("{0} : End", new StackTrace(0, true).getframe(0).getmethod().name); 22. Console.ReadLine(); W linii 9 jest odszukana w bazie danych instancja obiektu customer z identyfikatorem "LONEP".W linii 11 jest stworzona instancja obiektu order. W linii 12 do kolekcji orders obiektu customer została dodana stworzona instancja za dopomogą metody ADD. Wracamy uwagę na to, że dodania do kolekcji Table<T> było za dopomogą metody InsertOnSubmit() (patrz listing 5. Linia 25) oraz do kolekcji EntitySet<T> przez metodę Add(). 13

Pobieranie baz Northwind oraz Pub oraz dołączenie tych baz do MS SQL Server 2005. Standardowa instalacja MS SQL Server 2005 nie zawiera przykładowych baz Northwind oraz Pub którzy byli w starszych wersjach MS SQL Server 2000. Dla doinstalowania tych baz do MS SQL Server 2005 trzeba realizować następne kroki: 1.Uruchomić stronę WWW http://www.microsoft.com/poland/technet/bazawiedzy/centrumrozwiazan/cr122_01.mspx 2.Odszukad rozdział na stronie przeznaczony do pobierania tych baz: 3.Urochomid pokazany wyżej link do strony z zawartością pliku SQL2000SampleDb.msi oraz urochomid proces kopiowania tego pliku. 4. Plik SQL2000SampleDb.msi musi byd razarchiwowany na dysku c:\. Po rearchywacji na dysku c: będzie stworzony katalog C:\SQL Server 2000 Sample Databases. W tym katalodzie są pliki instnwnd.sql oraz instpubs.sql: 14

5. Dla dołączenia pliku bazy danych Northwind (lub Pubs) do MS SQL Server 2005 trzeba kliknąć dwa razy instnwnd.sql (instpubs.sql) dla uruchomienia Sql Management Studio 2005. W środowiśku Management Studio zalądowad plik instnwnd.sql (instpubs.sql) oraz uruchomid go przez EXECUTE. Plik bazy danych zostanie dołączony do serwera. Zadania ćwiczeniowe dla studenta 1.LINQ to Object Stwórz program w którym jest zdefiniowana tablica ciągów znaków. W zawartośd tej tablicy wpisz nazwiska studentów swojej grupy. Za dopomogą polecenia LINQ to Object wydrukuj wszystkie nazwiska studentów poczynające z wyznaczonej litery. Wskazówka: typowa konstrukcja kodu do wywołania elementu z tablicy ciągów znaków może mied następny wygląd: IEnumerable<string> items = grupa.where(p => p.startswith("a")); foreach (string item in items) Console.WriteLine(item); 2.LINQ to XML Stwórz plik XML z nazwami przedmiotów oraz wykładowców. Za dopomogą polecenia LINQ to XML wydrukuj przedmioty danego wykładowcy oraz wykładowców skojarzonych z tym przedmiotem. 3.LINQ to SQL z wykorzystaniem SQLMETAL Dołącz bazę danych Northwind do MS SQL Server 2005 Stworz nowy projekt w Visual Studio 2008 Stworz kontekst bazy za dopomogą utility Sqlmetal Dołącz plik kontekstu do projektu Stwórz kod programu do wywołania wszystkich zamowień wyznaczonego klienta Stwórz kod programu do wstawiania nowego zamowienia 4. LINQ to SQL z wykorzystaniem O/R Designera Stworz nowy projekt w Visual Studio 2008 Za dopomogą O/R Designera dołącz niezbędne obiekty Stwórz kod programu do jednoczesnego wstawiania nowego klienta razem z trzema zamowieniami Stwórz kod programu do wywołania wszystkich towarów zamowianych klientem w wyznaczonym zamowieniu 5.Wymogi do sprawozdania: Opis zadania Kody programów Widoki Wnioski 15