ASP.NET MVC - 更新外键

时间:2012-04-10 07:32:30

标签: asp.net-mvc

我刚开始研究ASP.NET MVC,我正在使用最新的beta(即4)。我正在采用正确的CRUD方案。我的主表(Task)看起来像这样 -

TaskID(int) EmployeeID(int) ProjectID(int) DeptID(int) 评论(varchar) 日期(日期时间) 小时(浮动)

TaskID是主键。其他三个ID都是引用表中的外键。

在各种教程之后,我使用Entity Framework创建了一个对象模型(.edmx)。然后,我使用“Add ... Controller”自动生成控制器,并选择“带读/写的控制器...”模板。

一切运作良好。但是,显然我希望三个外键列显示来自引用表的查找值,而不是ID。我真的不确定实现这一目标的“最佳实践”方法是什么。我有几种选择 -

  1. 在SQL Server中创建视图
  2. 在EF中创建一个视图(不确定如何完成)
  3. 使用控制器中的LINQ
  4. 即时查找参考值

    也许还有其他方法。我想听听有关这种情况下“最佳实践”的经验丰富的MVC编程。

1 个答案:

答案 0 :(得分:2)

更喜欢使用具有类似

的属性的TaskViewModel类
public class TaskViewModel
{
    public Task Task { get; set; }
    public Dictionary<int, string> ProjectList { get; set; }
    //rest of the Lookup Properties like DeptList, EmpList
}
public class Task
{
    public int TaskId { get; set; }
    public int projectId { get; set; }
    //Rest of the properties
}

并且会使用

@model TaskViewModel
@Html.DropDownListFor(m => m.Task.projectId, new SelectList(Model.ProjectList, "key", "value", Model.Task.projectId))%>