Wprowadzenie do zintegrowanego zapytania językowego

LINQ jest skrótem od Language Integrated Query. Został on ustanowiony w .NET 3.5 i Visual Studio 2008, główną koncepcją LINQ jest udostępnienie funkcji dla języków .NET (takich jak C #, VB.NET itp.) W celu tworzenia zapytań w celu odzyskania danych ze źródła danych. Aby pobrać dane z różnych formatów i źródeł w C # i VB.NET, jego jednolita składnia zapytań. Eliminuje różnice między bazami danych i językami programowania, ponieważ jest zintegrowany z C # / VB, a także zapewnia odrębny interfejs zapytań dla różnych typów źródeł danych. Umożliwia stosowanie podejścia obiektowego do zbioru wyników; wynikowe zapytania zwracają wyniki jako obiekty.

Różnica między SQL i LINQ polega na tym, że w przypadku (Language Integrated Query) jest strukturalna składnia zapytań, w której wbudowane są VB.NET i C # w celu pobrania danych z różnych rodzajów źródeł danych, w tym MS SQL Server, ADO.Net DataSet, usługa sieciowa, Kolekcje, Dokumenty XML i inne bazy danych. W ten sam sposób SQL jest językiem zapytań strukturalnych, który służy do przechowywania i pobierania danych z bazy danych.

Definicja

Language Integrated Query proponuje kompaktową znaczącą i zrozumiałą składnię danych operacyjnych. Language Integrated Query to taktyka i model programowania Microsoft, który skutecznie obejmuje formalne możliwości zapytań w językach programowania Microsoft .NET. Wymaga obecności określonych rozszerzeń językowych. Rzeczywista wartość zintegrowanego zapytania językowego wynika z jego możliwości zastosowania tego samego zapytania do zestawu danych, bazy danych SQL, tablicy obiektów w pamięci, a także różnych typów danych.

Zrozumienie

Składa się z trójwarstwowej architektury, w której górna warstwa ma rozszerzenia językowe, a najniższa warstwa ma źródła danych, które są na ogół obiektami implementującymi ogólne interfejsy IEnumerable lub IQueryable. Architektura LINQ jest pokazana poniżej.

W języku C # LINQ przedstawia w Systemie przestrzeni nazw. Linq. Definiuje różne typy metod i klas obsługujących zapytania LINQ. W przestrzeni nazw składa się z

  • Klasa wyliczalna zawiera standardowe operatory zapytań, które działają na obiekcie wykonywalnym IEnumerable.
  • Klasa Queryable zawiera standardowe operatory zapytań, które działają na obiekcie wykonującym IQueryable.

Najważniejsze zespoły w nim to:

  • Korzystanie z systemu. Linq: Wyposaż się w klasy i interfejs do obsługi zapytań LINQ
  • Korzystanie z System.Collections.Generic: (LINQ do Objects) Pozwól użytkownikowi budować kolekcje silnie typowane, które zapewniają bezpieczeństwo i wydajność typów
  • Korzystanie z System.Data.Linq: (LINQ to SQL) Oferta z funkcjonalnością umożliwiającą korzystanie z relacyjnych baz danych
  • Korzystanie z System.XML.Linq: (LINQ to XML) Przedstawia funkcjonalność umożliwiającą korzystanie z dokumentów XML za pomocą LINQ.
  • Korzystanie z System.Data.Linq.Mapping: Przypisano klasę jako encję połączoną z bazą danych.

W jaki sposób LINQ sprawia, że ​​praca jest tak łatwa?

Praca z LINQ jest tak łatwa, ponieważ zapytanie zintegrowane językowo zapewnia zintegrowane z językiem i obiektowe podejście do zapytania. Za pomocą zapytania zintegrowanego z językiem możemy przeszukiwać XML, bazę danych, a także kolekcje. Sprawdza składnię w czasie kompilacji. W języku zintegrowanym zapytaniu pisanie kodów jest szybsze, ponieważ czas programowania również ulega skróceniu automatycznie. Aby zrozumieć, dlaczego powinniśmy używać zapytania zintegrowanego z językiem, zobaczmy kilka przykładów. Załóżmy, że chcesz zlokalizować listę młodych studentów z szeregu obiektów studentów.
Wcześniej niż C # 2.0 musieliśmy użyć pętli „for each” lub „for”, aby przejrzeć kolekcję i znaleźć konkretny obiekt. Na przykład, aby napisać kod, aby wyświetlić listę wszystkich obiektów Studentów z tablicy Studentów, w których wartość SAge wynosi od 12 do 20.

Przykładowy program do korzystania z pętli

class StudentDetails
(
public int SID ( get; set; )
public String SName ( get; set; )
public int SAge ( get; set; )
)
class Program
(
static void Main(string() args)
(
StudentDetails () sArray = (
new StudentDetails () ( SID = 1, SName = "Rio", SAge = 18 ),
new StudentDetails () ( SID = 2, SName = "Rock", SAge = 21 ),
new StudentDetails () ( SID = 3, SName = "Smith", SAge = 25 ),
new StudentDetails () ( SID = 4, SName = "Jack", SAge = 20 ),
new StudentDetails () ( SID = 5, SName = "Remo", SAge = 31 ),
new StudentDetails () ( SID = 6, SName = "Andre", SAge = 17 ),
new StudentDetails () ( SID = 7, SName = "Don", SAge = 19 ),
);
StudentDetails () students = new StudentDetails (10);
int i = 0;
foreach (StudentDetails std in sArray)
(
if (std.SAge > 12 && std.SAge < 20)
(
students(i) = std;
i++;
)
)
)
)

Użycie pętli for jest uciążliwe, niemożliwe do opanowania przez cały czas, gdy znajduje się wiele wyników, a także nieczytelne. Dlatego zespół wprowadza następną wersję C # 3.0, która została wprowadzona, dzięki temu podejściu można rozwiązać tego rodzaju problemy, ponieważ zapytanie zintegrowane w języku jest elementem składowym elementów zapytania dla kilku rodzajów kolekcji, a także uzyskuje wyniki za pomocą pojedynczej instrukcji .
Zobaczmy poniższy przykład wyjaśniający, że zapytanie LINQ wyrażenia lambda pomaga znaleźć konkretnego ucznia ze zbioru list.

Przykładowy program

class ProgramLINQ
(
static void Main(string() args)
(
StudentDetails () sArray = (
new StudentDetails () ( SID = 1, SName = "Rio", SAge = 18 ),
new StudentDetails () ( SID = 2, SName = "Rock", SAge = 21 ),
new StudentDetails () ( SID = 3, SName = "Smith", SAge = 25 ),
new StudentDetails () ( SID = 4, SName = "Jack", SAge = 20 ),
new StudentDetails () ( SID = 5, SName = "Remo", SAge = 31 ),
new StudentDetails () ( SID = 6, SName = "Andre", SAge = 17 ),
new StudentDetails () ( SID = 7, SName = "Don", SAge = 19 ),
);
// to find young students in the list
StudentDetails () tStudents = sArray.Where(s => s. SAge > 12 && s. SAge < 20).ToArray();
// to find first student whose name is Smith
StudentDetails f_Sname = sArray.Where(s => s. SName == "Smith ").FirstOrDefault();
// to find student whose StudentID is 5
StudentDetails f_SID = sArray.Where(s => s. SID == 5).FirstOrDefault();
)
)

W ten sposób zintegrowana kwerenda językowa sprawia, że ​​kod jest dodatkowo kompresowany i zrozumiały, a także może być wykorzystywany do przeszukiwania kilku źródeł danych.

Jakie jest zastosowanie LINQ

  • Dobrze znany język
  • Mniej kodowania
  • Kod czytelny
  • identyczna technika kwerendowania wielu źródeł danych
  • Czas kompilacji ochrony zapytań
  • Konserwacja Intelli-Sense
  • Określanie danych

Praca z LINQ

Język Zintegrowane zapytania Włączone źródła danych. rodzaje LINQ są wymienione w skrócie poniżej.

  • LINQ do obiektów
  • LINQ to XML (XLINQ)
  • LINQ do zestawu danych
  • LINQ na SQL (DLINQ)
  • Linq do podmiotów

1. LINQ do obiektu

LINQ do obiektów Przedstawia obsługę każdego zapytania LINQ obsługującego IEnumerable do uzyskiwania dostępu do kolekcji danych i obiektów w pamięci. Zwracana zmienna w Linq do obiektów będzie typu IEnumerable.

2. LINQ to XML (XLinq)

LINQ to XML jest dostępny w przestrzeni nazw o nazwie System.Xml.Linq. do wysyłania zapytań do źródeł danych XML, korzystamy z LINQ to XML. Co więcej, Linq to XML najlepiej wykorzystuje funkcje środowiska .NET, takie jak sprawdzanie czasu kompilacji, debugowanie, silne pisanie i tak dalej. ładowanie dokumentów XML do pamięci jest proste i łatwiejsze w modyfikacji i zapytaniach dotyczących dokumentów.

3. LINQ do zestawu danych

LINQ do DataSet, który obsługuje zapytania przy użyciu tabel danych i zestawów danych ADO.NET. kiedy dane są konsolidowane z kilku źródeł danych, użyjemy LINQ do zestawu danych do zapytań.

4. LINQ do SQL

LINQ to SQL jest również nazywany DLINQ i jest częścią zapytania zintegrowanego z językiem; za pomocą wyrażeń LINQ, umożliwia kwerendę danych w bazie danych SQL Server.

5. LINQ do podmiotów

W LINQ do encji za pomocą C # Jest to łatwy i prosty sposób na zapytanie encji. Kwerenda jest wyrażeniem używanym do uzyskiwania danych z magazynu danych. za pomocą tego DBContext w EF 6 lub DBContext w frameworku encji EF Core następuje zapytanie do bazy danych.

Zalety

Zintegrowane zapytanie językowe oferuje wiele korzyści; Niektóre zalety podano poniżej.

  • Pomaga w wykrywaniu błędów podczas projektowania z powodu podświetlania składni.
  • Pomaga w dokładniejszym pisaniu zapytań.
  • W Language Integrated Query czas programowania ulegnie skróceniu, ponieważ pisanie kodu jest znacznie szybsze i łatwiejsze w Language Integrated Query.
  • Jest zintegrowany z językiem C #, ponieważ ułatwia debugowanie.
  • Ma swoje cechy hierarchiczne, ponieważ przeglądanie relacji między dwiema tabelami jest łatwiejsze i zajmuje mniej czasu na tworzenie zapytań przy użyciu wielu sprzężeń.
  • Language Integrated Query obsługuje łatwiejszą transformację do konwersji z jednego typu danych na inny typ danych, np. Transformacja z SQL na dane XML.
  • Korzystając z LINQ, programiści mogą łatwo utrzymać i zrozumieć, ponieważ jego kod jest bardziej czytelny.
  • W LINQ będzie jednolita składnia dla zapytań do kilku źródeł danych.
  • W czasie kompilacji LINQ zapewnia sprawdzanie typu obiektów.
  • Obsługuje kształtowanie danych, możemy pobierać dane w różnych kształtach.

Dlaczego warto korzystać z LINQ?

Zobaczmy, dlaczego opracowano Zapytanie zintegrowane z językiem lub dlaczego korzystamy z LINQ, istnieje kilka punktów określających, dlaczego używamy Zapytania zintegrowanego z językiem.

  • Porównując z SQL, LINQ jest łatwy w obsłudze, językiem wysokiego poziomu i dobrze zorientowanym.
  • Główną zasadą stojącą za budowaniem LINQ jest, wcześniej w C # 3.0, znalezienie określonego obiektu, którego używaliśmy dla każdego, dla pętli, delegatów, używając tych wszystkich, była to poważna wada, ponieważ aby znaleźć obiekt, musimy zakodować kilka wierszy kodowanie, które powoduje, że program jest mniej czytelny, a także bardziej czasochłonny. Aby przezwyciężyć te problemy, wprowadzono LINQ, ponieważ zapytanie zintegrowane językowo wykona programy / kodowanie w bardzo mniejszej liczbie wierszy, a także kod stanie się bardziej czytelny, a gdy kod zostanie znormalizowany, możemy użyć tego samego kodu w kilku innych programach.
  • Podczas działania pomaga znaleźć błędy, dzięki czemu możemy łatwo je usunąć lub poprawić, a także zapewnia kontrolę czasu kompilacji.
  • W skuteczny sposób LINQ daje nam nowy kierunek rozwiązywania takich problemów; a także możemy użyć zintegrowanego z językiem zapytania z kolekcjami i tablicą C #.
  • Zachowuje w wyrażeniu zapytania, metodach rozszerzenia, zmiennych typu niejawnego, wyrażeniach lambda, obiektach i kolekcjach.
  • W zintegrowanym zapytaniu językowym nie ma potrzeby uczenia się różnych rodzajów języków, ponieważ odrębne zapytanie może działać z dowolną bazą danych. A także obsługuje wszelkiego rodzaju źródła danych, takie jak obiekty, XML, Entities, SQL i tak dalej.

Zintegrowany język Zakres zapytań

Został stworzony, aby załadować lukę między konwencjonalnym .NET, który prezentuje podejście obiektowe i podejście silnego pisania. Language Integrated Query wprowadził łatwy do nauki model do modyfikowania i odpytywania danych, a także obsługuje źródła danych, które obejmują XML, struktury danych w pamięci i dane relacyjne. Język zintegrowany Zapytanie zintegrowane z obiektowym i relacyjnym podejściem. Jest to mocno napisane wyrażenie. Wyrażenia o silnym typie zapewniają, że wartość odpowiedniego typu w czasie kompilacji oraz w czasie wykonywania zapobiega wykrywaniu błędów zakodowanych.

Dlaczego potrzebujemy LINQ?

Wcześniej do LINQ konieczne było nauczenie się SQL, C # i kilku API, które łączą się, aby stworzyć całą aplikację. Tak więc język programowania i źródła danych napotykają pewne problemy, a kodowanie również utrudnia. Zobaczmy przykład kilku technik, które zostały wykorzystane przez programistów podczas zapytania o dane przed nadejściem zintegrowanego zapytania językowego.

Przykładowy program

SqlConnection conn= new SqlConnection(connString);
SqlConnection.Open();
System.Data.SqlClient.SqlCommand cmd=ne SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "Select * from Employee";
return cmd.ExecuteReader (CommandBehavior.CloseConnection) ;
By using LINQ the above same query can be return in simple easy and readable form whereas the consuming time also very less.
Northwind db_ = new Northwind(@"C:\Data\Northwind.mdf");
var query_result = from e in db.Employee select e;

W jaki sposób ta technologia pomoże ci w rozwoju kariery?

Jest to wyszukiwarka, która pomaga usprawnić przepływy danych. Pomoże w rozwoju kariery w dobrze zorientowany sposób. Obsługuje cały zespół w łatwej pracy i zmniejsza liczbę przeróbek, a także utrzymuje projekt w zaplanowanym czasie i w ramach szacowanego budżetu.

Wniosek

Czytałeś dobrze, jak różni się LINQ i poprawiasz się dzięki ADO.NET. Ponadto pomaga oszczędzać czas. Ostatecznie wiesz, w jaki sposób można wykorzystywać zapytania zintegrowane z językiem dla kilku rodzajów źródeł danych. W tym artykule dowiedzieliśmy się o działającym procesie zapytania zintegrowanego z językiem i o tym, jak go używać. Mam nadzieję, że ten artykuł pomógłby ci.

Polecane artykuły

To jest przewodnik po Co to jest LINQ ?. Tutaj omawiamy definicję, zalety i zastosowanie wraz z programem próbnym i zakresem. Możesz także przejrzeć nasze inne sugerowane artykuły, aby dowiedzieć się więcej -

  1. Narzędzia GUI MongoDB
  2. Co to jest Dropbox?
  3. Co to jest Laravel?
  4. Co to jest StringBuilder w C #