• 30.03.2017
  • 4 minute de citit
    • m

    • v

    • n

    • n

    • n

In acest articol

Aceasta prezentare generala demonstreaza utilizarea LINQ asociatiilor SQL pentru a reprezenta relatii cu cheie straina in baza de date.

Nota

Computerul dvs. poate afisa nume sau locatii diferite pentru unele dintre elementele interfetei utilizator Visual Studio in urmatoarele instructiuni. Editia Visual Studio pe care o aveti si setarile pe care le utilizati determina aceste elemente. Pentru mai multe informatii, consultati Personalizarea IDE.

Aceasta prezentare generala a fost scrisa utilizand setarile de dezvoltare Visual Basic.

Conditii prealabile

Trebuie sa fi finalizat Ghidul de parcurs: Model simplu de obiecte si interogare (Visual Basic). Aceasta prezentare se bazeaza pe aceea, inclusiv prezenta fisierului northwnd.mdf in c: \ linqtest.

Prezentare generala

Aceasta prezentare cuprinde trei sarcini principale:

  • Adaugarea unei clase de entitate pentru a reprezenta tabelul Comenzi in baza de date Northwind esantion.

  • Suplimentarea adnotarilor la clasa Clienti pentru a imbunatati relatia dintre Clienti si clasele Comenzi.

  • Crearea si rularea unei interogari pentru a testa procesul de obtinere a informatiilor despre comanda utilizand clasa Client.

Cartografierea relatiilor intre tabele

Dupa definitia clasei Clienti, creati definitia clasei entitatii Comanda care include urmatorul cod, care indica faptul ca Comenzi.Client se raporteaza ca o cheie straina la Clienti.ClientID.

Pentru a adauga clasa de entitate Comanda

  • Tastati sau lipiti urmatorul cod dupa clasa Client:

    <Table (Name: = “Orders”)> _ Public Class Order Private _OrderID as Integer Private _CustomerID as String Private _Customers As EntityRef (Of Customer) Public Sub New () Me._Customers = New EntityRef (Of Customer) () End Sub <Coloana (Storage: = “_ OrderID”, DbType: = “Int NOT NULL IDENTITY”, _ IsPrimaryKey: = True, IsDBGenerated: = True)> _ Publica ReadOnly Property OrderID () Intregul Get Return Me ._OrderID End Get End Property ‘Nu este necesar sa specificati un setter, deoarece IsDBGenerated este adevarat. <Coloana (Stocare: = “_ CustomerID”, DbType: = “NChar (5)”)> _ Proprietate publica CustomerID () Ca sir Get Return Me._CustomerID End Get Set (ByVal value As String) Me._CustomerID = value End Set Proprietate finala <Asociere (Stocare: = “_ Clienti”, ThisKey: = “Client ID”)>

Adnotarea clasei de clienti

In acest pas, adnotati clasa Client pentru a indica relatia acesteia cu clasa Comanda. (Aceasta adaugare nu este strict necesara, deoarece definirea relatiei in ambele directii este suficienta pentru a crea legatura. Dar adaugarea acestei adnotari va permite sa navigati cu usurinta in obiecte in ambele directii.)

Pentru a adnota clasa Client

Crearea si executarea unei interogari in relatia client-comanda

Acum puteti accesa obiectele Comanda direct din obiectele Clientului sau in ordinea opusa. Nu aveti nevoie de o asociere explicita intre clienti si comenzi.

Pentru a accesa obiecte Comanda utilizand obiecte Client

  1. Modificati metoda Sub Main tastand sau lipind urmatorul cod in metoda:

    ‘Interogare pentru clientii care nu au comenzi. Dim custQuery = _ From cust In clienti _ Unde nu cust.Orders.Any () _ Select cust Dim msg As String = “”, title As String = _ “Clienti fara comenzi”, raspuns Ca MsgBoxResult, _ stil Ca MsgBoxStyle = MsgBoxStyle.Information pentru fiecare custObj In custQuery msg & = String.Format (custObj.CustomerID & vbCrLf) Raspuns urmator = MsgBox (msg, stil, titlu)

  2. Apasati F5 pentru a depana aplicatia.

    Doua nume apar in caseta de mesaj, iar fereastra Consolei arata codul SQL generat.

  3. Inchideti caseta de mesaje pentru a opri depanarea.

Crearea unei vizualizari puternice a bazei de date

Este mult mai usor sa incepeti cu o vizualizare puternic tastata a bazei de date. Tastand puternic obiectul DataContext, nu aveti nevoie de apeluri catre GetTable. Puteti utiliza tabele puternic tastate in toate interogarile dvs. atunci cand utilizati obiectul DataContext puternic tastat.

In pasii urmatori, veti crea Clienti ca un tabel puternic tastat care se mapeaza la tabelul Clienti din baza de date.

Pentru a tasta puternic obiectul DataContext

  1. Adaugati urmatorul cod deasupra declaratiei clasei de clienti.

    Clasa publica Northwind Inherits DataContext ‘Tabelul (din T) rezuma detaliile bazei de date pentru fiecare’ tabel / tip de date. Clienti publici ca tabel (de client) Comenzi publice ca tabel (de comanda) Sub public nou (conexiune ByVal ca sir) MyBase.Nou (conexiune) Sfarsit Clasa sub final

  2. Modificati Sub Main pentru a utiliza DataContext puternic tastat dupa cum urmeaza:

    ‘Folositi un sir de conexiune. Dim db As New Northwind _ (“C: \ linqtest \ northwnd.mdf”) ‘Interogare pentru clientii din Seattle. Dim custs = _ From cust In db.Customers _ Where cust.City = “Seattle” _ Select cust pentru Each custObj In custs Console.WriteLine (“ID =” & custObj.CustomerID) Next ‘Freeze the console window. Console.ReadLine ()

  3. Apasati F5 pentru a depana aplicatia.

    Iesirea ferestrei Consolei este:

    ID = WHITC

  4. Apasati Enter in fereastra Consolei pentru a inchide aplicatia.

  5. In meniul Fisier , faceti clic pe Salvati toate daca doriti sa salvati aceasta aplicatie.

Pasii urmatori

Urmatoarea solutie (Ghid: Manipularea datelor (Visual Basic)) demonstreaza cum se manipuleaza datele. Aceasta actiune nu necesita salvarea celor doua actiuni in aceasta serie pe care le-ati finalizat deja.

Vezi si

  • Invatarea prin ghiduri