Я использую первую реализацию 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
)
Я могу назначить сотрудника для проекта. Однако я хочу иметь возможность удалить сотрудника из проекта и иметь значение поля «Сотрудник» равным нулю. В моем пользовательском интерфейсе это будет отображаться как «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();
}
Но это ничего не помогает.
Есть ли у кого-нибудь идеи?