Bonjour,
Je débute juste avec Linq to SQL, et pour commencer par des choses faciles, j'ai un petit soucis avec les clés étrangères. Je m'explique :
J'ai deux bases de données destinées à l'enregistrement des utilisateurs de mon application. Une pour lister les utilisateurs, la seconde pour lister leurs adresses mail.
Dans la table des adresses mails, un champ référence la table des utilisateurs pour associer une personne à une adresse mail. Dans la table des utilisateurs, un champ référence la table des adresses mail pour définir l'adresse par défaut de chaque utilisateur.
Nous avons donc :
En SQL, la suite de commandes était :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 CREATE TABLE [dbo].[int_emails]( [mel_uid] [int] IDENTITY(1,1) NOT NULL, [mel_user] [int] NOT NULL, [mel_address] [varchar](255) NOT NULL, CONSTRAINT [PK_int_emails] PRIMARY KEY, CONSTRAINT [UN_int_emails] UNIQUE ) CREATE TABLE [dbo].[int_users]( [usr_uid] [int] IDENTITY(1,1) NOT NULL, [usr_main_email] [int] NULL, [usr_password] [nchar](64) NOT NULL, CONSTRAINT [PK_int_users] PRIMARY KEY, ) ALTER TABLE [dbo].[int_users] WITH CHECK ADD CONSTRAINT [FK_int_users_int_emails] FOREIGN KEY([usr_main_email]) REFERENCES [dbo].[int_emails] ([mel_uid]) ALTER TABLE [dbo].[int_users] CHECK CONSTRAINT [FK_int_users_int_emails] ALTER TABLE [dbo].[int_emails] WITH CHECK ADD CONSTRAINT [FK_int_emails_int_users] FOREIGN KEY([mel_user]) REFERENCES [dbo].[int_users] ([usr_uid]) ALTER TABLE [dbo].[int_emails] CHECK CONSTRAINT [FK_int_emails_int_users]
0- Débuter une transaction
1- Créer un utilisateur en ne définissant pas son email par défaut (null, donc)
2- Créer un email avec pour utilisateur l'ID créé par la commande 1
3- Définir le mail par défaut de l'utilisateur comme étant l'ID créé par la commande 2
4- Clore la transaction
Avec Linq, je n'y parviens pas. Avez-vous des idées ?
Merci.
Partager