Inclure une deuxième table à la base de données et créer des relations.
Linq to SQL : Ajout de tables et création des relations
Ajout de tables
Jusqu’à présent, la base de données ne contenait qu’une seule table. Etendons cet exemple afin d’inclure une deuxième table liée appelée Review. Celle-ci inclut ReviewId, Comment et MovieId, qui sont liés au film faisant l’objet d’une revue. Dans le listing 2, vous allez noter que, outre la propriété MovieId, une propriété Movie est annotée avec l’attribut Association. Cela permet d’établir la relation entre les tables Review et Movie.
Création des relations
Outre le fait d’ajouter la classe Review, vous allez aussi ajouter une propriété Reviews à la classe Movie. Cela vous permettra de passer d’un film à ses revues correspondantes. De nouveau, la propriété Reviews, illustrée au listing 3, est annotée avec l’attribut Association. Vous allez aussi constater que comme partie intégrante du constructeur Movie, le champ reviews est instancié en tant que nouvel EntitySet et passe des références aux méthodes attachReview et detachReview. Ces méthodes veillent à ce que la relation entre Movie et Review soit établie ou supprimée correctement, lorsqu’une revue (Review) est ajoutée ou supprimée au niveau de Movie.
La seule chose restant à accomplir est d’ajouter la table Review à MovieDataContext :
public class MoviesDataContext : DataContext {
…
public Table<Review> Reviews;
}
Si vous ajoutez cette table et cette relation à une base de données existante, vous devrez appeler la méthode AddTable sur l’updater de base de données. Comme l’association pour lier la table est définie sur la table Review que vous ajoutez, il est inutile d’appeler aussi AddAssociation :
if (dbUpdater.DatabaseSchemaVersion < 3) {
dbUpdater.AddTable<Review>();
dbUpdater.DatabaseSchemaVersion = 3;
dbUpdater.Execute();
}
Voici maintenant un exemple simple qui illustre la création d’un film et de la revue correspondante :
var movie = new Movie() {Name = « Hall Pass »,
Year = 2011,
Synopsis = « Very funny movie »};
dc.Movies.InsertOnSubmit(movie);
var review = new Review() { Comment = « This is one of the funniest movies ever » };
movie.Reviews.Add(review);
dc.Reviews.InsertOnSubmit(review);
dc.SubmitChanges();
Autres techniques et limitations
Cet article a montré comment créer une base de données LINQ to SQL en commençant avec un ensemble de classes annotées. Une autre possibilité consiste à utiliser Visual Studio ou SQL Server Management Studio afin de créer une base de données SQL Server Compact et d’employer l’outil en ligne de commande SqlMetal, en vue de générer les classes correspondantes pour une utilisation au sein de votre application Windows Phone.
Vous avez aussi vu comment mettre à jour progressivement votre base de données LINQ to SQL afin de gérer de nouvelles colonnes et tables de données. Toutefois, l’updater est limité en ce sens qu’il ne peut pas servir à modifier ou supprimer des colonnes ou tables existantes. Pour modifier une colonne, vous devez ajouter une colonne de remplacement et migrer les données de la colonne existante vers la nouvelle. Même si la suppression de colonnes ou tables est impossible, vous devez supprimer toute donnée devenue inutile afin de réduire la taille de la base de données LINQ to SQL.
Téléchargez cette ressource
Guide de Cyber-résilience pour Microsoft 365
La violation de votre tenant M365 va au-delà d’un simple incident de cybersécurité. Elle peut entraîner une interruption opérationnelle généralisée, des perturbations commerciales et une exposition de vos données sensibles. Découvrez les méthodes et technologies pour évaluer, comparer et renforcer votre posture de sécurité Microsoft 365.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Semi-conducteurs : comment l’Irlande veut contribuer à atténuer la pénurie mondiale de puces
- À l’aube de 2026, le SaaS entre dans une nouvelle phase
- Face à l’urgence écologique, l’IT doit faire sa révolution
- IoT et cybersécurité : les bases que chaque décideur doit maîtriser
Articles les + lus
CES 2026 : l’IA physique et la robotique redéfinissent le futur
Les 3 prédictions 2026 pour Java
Semi-conducteurs : comment l’Irlande veut contribuer à atténuer la pénurie mondiale de puces
Face à l’urgence écologique, l’IT doit faire sa révolution
D’ici 2030, jusqu’à 90 % du code pourrait être écrit par l’IA, pour les jeunes développeurs, l’aventure ne fait que commencer
À la une de la chaîne Tech
- CES 2026 : l’IA physique et la robotique redéfinissent le futur
- Les 3 prédictions 2026 pour Java
- Semi-conducteurs : comment l’Irlande veut contribuer à atténuer la pénurie mondiale de puces
- Face à l’urgence écologique, l’IT doit faire sa révolution
- D’ici 2030, jusqu’à 90 % du code pourrait être écrit par l’IA, pour les jeunes développeurs, l’aventure ne fait que commencer
