- 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
-
Tastati sau lipiti urmatorul cod in clasa Clienti:
_Orders private ca EntitySet (Of Order) Public Sub New () Me.
madres viciosas correte dentro
viejas feas todoporno
jovencitos desnudos pajotes
follando en canarias las mejores folladas
your porn viejasxxx
follando con mirones españolas peludas
videosgays guarras.com
jovencitas xxx hd comicxxx
fakings.tv porno torrent
madresxxx porno peludas
peliculas porno vintage madresxxx
pelis porno español online pilladas playa
maduras en castellano videos xxxxx
maduras españolas sexo sexo en directo
travestis dotadas madura tetona
porno amater español corriendose dentro
mamada gay mamadas de abuelas
corrida boca porno canario_Orders = New EntitySet (Of Order) () End Sub <Association (Storage: = “_ Orders”, OtherKey: = “CustomerID”)> _ Ordine de proprietate publica ( ) Ca EntitySet (Of Order) Get Return Me._Orders End Get Set (valoare ByVal As EntitySet (Of Order)) Me._Orders.Assign (value) End Set End Property
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
-
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)
-
Apasati F5 pentru a depana aplicatia.
Doua nume apar in caseta de mesaj, iar fereastra Consolei arata codul SQL generat.
-
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
-
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
-
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 ()
-
Apasati F5 pentru a depana aplicatia.
Iesirea ferestrei Consolei este:
ID = WHITC
-
Apasati Enter in fereastra Consolei pentru a inchide aplicatia.
-
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








