Установка внешнего ключа на нуль при первом использовании кода структуры сущности

Я использую первую реализацию 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();
}

Но это ничего не помогает.

Есть ли у кого-нибудь идеи?

35
задан gunr2171 17 June 2014 в 15:38
поделиться