ASP.NET MVC 4更新外键表

时间:2015-04-14 11:46:57

标签: entity-framework asp.net-mvc-4

我的数据库中有两个表项目任务一个项目可能有多个任务,因此它有一个任务列,其中插入了任务ID。创建新项目时,任务列将为空,可以为空。但是,当创建新任务时,我想通过将新创建的任务ID添加到任务列来获取Task Id并修改Project表。我怎么能在MVC 4中做到这一点?

1 个答案:

答案 0 :(得分:0)

假设您使用Entity Framework - Code First,您可以随时采用此方法,其中项目有许多任务。我为你创建了模型

public class Project
{
    public int Id { get; set; }

    public virtual ICollection<ProjectTask> ProjectTasks { get; set; }
}

public class ProjectTask
{
    public int ProjectId { get; set; }
    public int TaskId { get; set; }

    public virtual Project Project { get; set; }
    public virtual Task Task { get; set; }
}

public class Task
{
    public int Id { get; set; }
    public string Description { get; set; }

    public virtual ICollection<ProjectTask> ProjectTasks { get; set; }
}

现在,根据您的设置(存储库,上下文等),您可以随意创建新任务,然后在准备好后,检索项目并添加到项目中。

var task = new Task() {Description = "My new task"};
Project project = ProjectRepository.FirstOrDefault();
if (project != null)
{
    project.ProjectTasks.Add(new ProjectTask(){Task = task});
    ProjectRepository.SaveChanges();
}

如果这听起来像你的目的,我附上了一些关于在实体框架中设置存储库模式的阅读

进一步阅读

Implementing the Repository Pattern in EF

Using Repository Pattern in EF