Delen via


LINQ naar SQL-hulpprogramma's in Visual Studio

LINQ naar SQL was de eerste object-relationele toewijzingstechnologie die is uitgebracht door Microsoft. Het werkt goed in basisscenario's en wordt nog steeds ondersteund in Visual Studio, maar het is niet langer onder actieve ontwikkeling. Gebruik LINQ voor SQL bij het onderhouden van een verouderde toepassing die deze al gebruikt, of in eenvoudige toepassingen die GEBRUIKMAKEN van SQL Server en waarvoor geen toewijzing van meerdere tabellen is vereist. In het algemeen moeten nieuwe toepassingen het Entity Framework gebruiken wanneer een object-relationele toewijzingslaag vereist is.

De LINQ installeren in SQL-hulpprogramma's

In Visual Studio maakt u LINQ naar SQL-klassen die SQL-tabellen vertegenwoordigen met behulp van de Object Relational Designer- (O/R Designer-). De O/R-ontwerper is de gebruikersinterface voor het bewerken van .dbml bestanden. Voor het bewerken van .dbml bestanden met een ontwerpoppervlak is de LINQ vereist voor SQL-hulpprogramma's die niet standaard zijn geïnstalleerd als onderdeel van een van de werkbelastingen van Visual Studio.

Als u de LINQ wilt installeren in SQL-hulpprogramma's, start u het installatieprogramma van Visual Studio, kiest u Wijzigen, selecteert u vervolgens het tabblad Afzonderlijke onderdelen en selecteert u vervolgens LINQ naar SQL-hulpprogramma's onder de CodeHulpprogramma's categorie.

Wat is de O/R Designer?

De O/R Designer- heeft twee verschillende gebieden op het ontwerpoppervlak: het deelvenster Entiteiten aan de linkerkant en het deelvenster Methoden aan de rechterkant. Het deelvenster Entiteiten is het hoofdontwerpoppervlak dat de entiteitsklassen, koppelingen en overnamehiërarchieën weergeeft. Het deelvenster Methoden is het ontwerpoppervlak dat de DataContext methoden weergeeft die zijn toegewezen aan opgeslagen procedures en functies.

De O/R Designer- biedt een visueel ontwerpoppervlak voor het maken van LINQ naar SQL entiteitsklassen en -koppelingen (relaties) die zijn gebaseerd op objecten in een database. Met andere woorden, de O/R Designer maakt een objectmodel in een toepassing die objecten in een database weerspiegelt. Er wordt ook een sterk getypeerd DataContext gegenereerd dat gegevens tussen de entiteitsklassen en de database verzendt en ontvangt. De O/R Designer- biedt ook functionaliteit voor het toewijzen van opgeslagen procedures en functies aan DataContext methoden voor het retourneren van gegevens en het vullen van entiteitsklassen. Ten slotte biedt de O/R Designer- de mogelijkheid om overnamerelaties tussen entiteitsklassen te ontwerpen.

De ontwerpfunctie voor O/R openen

Als u een LINQ wilt toevoegen aan het SQL-entiteitsmodel, kiest u Project>Nieuw item toevoegenen selecteert u LINQ naar SQL-klassen in de lijst met projectitems:

Schermopname van LINQ naar SQL-klassen.

Visual Studio maakt een .dbml-bestand en voegt dit toe aan uw oplossing. Dit is het XML-toewijzingsbestand en de bijbehorende codebestanden.

Schermopname van LINQ naar SQL-klassen in Solution Explorer.

Wanneer u het .dbml-bestand selecteert, wordt in Visual Studio het O/R Designer-oppervlak weergegeven waarmee u het model visueel kunt ontwerpen. In de volgende afbeelding ziet u de ontwerper nadat de tabellen Northwind Customers en Orders zijn gesleept vanuit Server Explorer. Noteer de relatie tussen de tabellen.

Schermopname van LINQ naar SQL Designer.

Belangrijk

De O/R Designer- is een eenvoudige relationele mapper voor objecten, omdat deze slechts 1:1-toewijzingsrelaties ondersteunt. Met andere woorden, een entiteitsklasse kan slechts een toewijzingsrelatie van 1:1 hebben met een databasetabel of -weergave. Complexe toewijzing, zoals het toewijzen van een entiteitsklasse aan een gekoppelde tabel, wordt niet ondersteund; gebruik het Entity Framework voor complexe toewijzingen. Daarnaast is de ontwerper een generator voor eenrichtingscode. Dit betekent dat alleen wijzigingen die u in het ontwerpoppervlak aanbrengt, worden doorgevoerd in het codebestand. Handmatige wijzigingen in het codebestand worden niet weergegeven in de O/R Designer-. Wijzigingen die u handmatig aanbrengt in het codebestand, worden overschreven wanneer de designer wordt opgeslagen en code opnieuw wordt gegenereerd. Zie How to: Extend code generated by the O/R Designer(Code uitbreiden die wordt gegenereerd door deO/R Designer) voor meer informatie over het toevoegen van gebruikerscode en het uitbreiden van de klassen die zijn gegenereerd door de O/R Designer.

De DataContext maken en configureren

Nadat u een LINQ to SQL Classes-item aan een project hebt toegevoegd en de O/R Designerhebt geopend, toont het lege ontwerpoppervlak een lege DataContext die klaar is om te worden geconfigureerd. de DataContext is geconfigureerd met verbindingsgegevens die worden verstrekt door het eerste item dat naar het ontwerpoppervlak wordt gesleept. Daarom wordt de DataContext geconfigureerd met behulp van verbindingsgegevens van het eerste item dat op het ontwerpoppervlak is neergezet. Zie DataContext methods (O/R Designer)voor meer informatie over de DataContext klasse.

Entiteitsklassen maken die worden toegewezen aan databasetabellen en -weergaven

U kunt entiteitsklassen maken die zijn toegewezen aan tabellen en weergaven door databasetabellen en -weergaven vanuit Server Explorer- of Database Explorer- naar de O/R Designer-te slepen. Zoals aangegeven in de vorige sectie, wordt de DataContext geconfigureerd met verbindingsgegevens die worden verstrekt door het eerste item dat naar het ontwerpoppervlak wordt gesleept. Als een volgend item dat gebruikmaakt van een andere verbinding wordt toegevoegd aan de O/R Designer-, kunt u de verbinding voor de DataContextwijzigen. Voor meer informatie, zie Hoe te: LINQ to SQL-klassen aanmaken die zijn toegewezen aan tabellen en weergaven (O/R Designer).

DataContext-methoden maken die opgeslagen procedures en functies aanroepen

U kunt DataContext methoden maken waarmee opgeslagen procedures en functies worden aangeroepen (toegewezen aan) door ze vanuit Server Explorer- of Database Explorer naar de O/R Designer-te slepen. Opgeslagen procedures en functies worden toegevoegd aan de O/R Designer- als methoden van de DataContext.

Notitie

Wanneer u opgeslagen procedures en functies sleept van Server Explorer- of Database Explorer- naar de O/R Designer-, verschilt het retourtype van de gegenereerde DataContext methode, afhankelijk van waar u het item neerlaat. Zie DataContext methods (O/R Designer)voor meer informatie.

Een DataContext configureren voor het gebruik van opgeslagen procedures voor het opslaan van gegevens tussen entiteitsklassen en een database

Zoals eerder vermeld, kunt u DataContext methoden maken waarmee opgeslagen procedures en functies worden aangeroepen. Daarnaast kunt u ook opgeslagen procedures toewijzen die worden gebruikt voor het standaardgedrag van LINQ naar SQL-runtime, waarmee invoegingen, updates en verwijderingen worden uitgevoerd. Voor meer informatie, zie Hoe: Opgeslagen procedures toewijzen voor het uitvoeren van updates, invoegen en verwijderen (O/R Designer).

Overname en de ontwerpfunctie voor O/R

Net als andere objecten kunnen LINQ naar SQL-klassen overerving gebruiken en van andere klassen worden afgeleid. In een database worden overnamerelaties op verschillende manieren gemaakt. De O/R Designer- ondersteunt het concept van overname van één tabel, omdat deze vaak wordt geïmplementeerd in relationele systemen. Voor meer informatie, zie Hoe te configureren: Overname configureren met behulp van de O/R Designer.

LINQ naar SQL-query's

De entiteitsklassen die zijn gemaakt door de O/R Designer- zijn ontworpen voor gebruik met LINQ-(Language Integrated Query). Zie voor meer informatie Procedure: Zoeken naar informatie.

De gegenereerde DataContext- en entiteitsklassecode scheiden in verschillende naamruimten

De O/R Designer- bevat de eigenschappen contextnaamruimte en entiteitsnaamruimte op de DataContext. Deze eigenschappen bepalen in welke naamruimte de DataContext en entiteitsklassecode wordt gegenereerd. Deze eigenschappen zijn standaard leeg en de DataContext en entiteitsklassen worden gegenereerd in de naamruimte van de toepassing. Als u de code wilt genereren in een andere naamruimte dan die van de toepassing, voer dan een waarde in in de Contextnaamruimte-eigenschap en/of de Entiteitsnaamruimte-eigenschap.

Referentiemateriaal

Zie ook