J'utilise la première implémentation de la base de données d'Entity Framework Code First comme couche de données pour un projet, mais j'ai rencontré un problème.
Je dois être en mesure de définir une clé étrangère comme nulle afin de supprimer une association dans la base de données.
J'ai 2 objets. L'un s'appelle Projet.
public class Project
{
public int ProjectId {get; set;}
public Employee Employee {get;set;}
}
public class Employee
{
public int EmployeeId {get; set;}
public string EmployeeName {get;set;}
}
Cela correspond à ce que j'ai dans la base de données :
CREATE TABLE Project(
ProjectId int IDENTITY(1,1) NOT NULL,
EmployeeId int NULL
)
CREATE TABLE Project(
EmployeeId int IDENTITY(1,1) NOT NULL,
EmployeeName varchar(100) NULL
)
Je peux affecter un employé à un projet. Cependant, je veux pouvoir retirer un employé d'un projet et faire en sorte que le champ Employé soit nul. Dans mon interface utilisateur, cela se traduira par "Aucun employé affecté".
Cependant, à part une requête sql directe, je n'arrive pas à trouver un moyen de le faire dans le cadre de l'entité 4.1.
J'ai essayé :
public void RemoveEmployeeFromProject(int projectId)
{
var project = Context.Projects.FirstOrDefault(x => x.ProjectId == projectId);
project.Employee = null;
Context.SaveChanges();
}
Mais cela ne fait rien.
Quelqu'un a-t-il une idée ?