Maison > Questions et réponses > le corps du texte
J'ai deux tables Employee
和 Address
。 Employee
是我的主表,Address
是通过外键 AddressId
与 Employee
sous-tables associées.
Lorsque je supprime Employee
记录时,来自 Address
l'enregistrement ne sera pas supprimé. Comment puis-je réécrire mon code pour ce faire ?
Employee: [Id](Primary Key) [FirstName] [LastName] [Email] [AddressId] (Foreign Key -> Address.Id) [Code] Address: [Id] (Primary Key) [Details] [State] [Country]
Voici mon code actuel :
public bool DeleteEmployee(int id) { using (var context=new EmployeeDBEntities()) { var employee = context.Employee.FirstOrDefault(x => x.Id == id); if (employee != null) { context.Employee.Remove(employee); context.SaveChanges(); return true; } return false; } }
P粉5584781502024-04-05 10:33:38
Vous recherchez la fonction ON DELETE CASCADE
qui indiquera à MySQL qu'un enregistrement doit être supprimé lorsque son enregistrement "parent" (dans une autre table) est supprimé.
Des choses comme ça :
CREATE TABLE address ( Id INT PRIMARY KEY AUTO_INCREMENT, Details VARCHAR(255) NOT NULL, State VARCHAR(255) NOT NULL, Country VARCHAR(255) NOT NULL ); CREATE TABLE employee ( Id INT PRIMARY KEY AUTO_INCREMENT, FirstName VARCHAR(255) NOT NULL, LastName VARCHAR(255) NOT NULL, Email VARCHAR(255) NOT NULL, AddressId INT NOT NULL, Code VARCHAR(255) NOT NULL, FOREIGN KEY (AddressId) REFERENCES address (Id) ON DELETE CASCADE );