Я использую первую реализацию базы данных Entity Framework Code First как слой данных для проекта, но я столкнулся с проблемой.
Мне нужно иметь возможность установить внешний ключ в значение null, чтобы удалить ассоциацию в базе данных.
У меня есть 2 объекта. Один из них называется Project.
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;}
}
Это соответствует тому, что у меня есть в базе данных:
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
)
Я могу назначить Работника проекту. Тем не менее, я хочу убрать сотрудника из проекта и иметь поле Employee равным null. В моем пользовательском интерфейсе это будет отображаться как "No EMployee Assigned".
Однако, за исключением прямого SQL-запроса, я не могу найти способ сделать это в инфраструктуре сущностей 4.1.
Я пробовал:
public void RemoveEmployeeFromProject(int projectId)
{
var project = Context.Projects.FirstOrDefault(x => x.ProjectId == projectId);
project.Employee = null;
Context.SaveChanges();
}
Но это ничего не делает.
Есть ли у кого-нибудь идеи?