首页 文章

ASP.NET MVC - 更新外键

提问于
浏览
0

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

TaskID(int)EmployeeID(int)ProjectID(int)DeptID(int)Comment(varchar)Date(datetime)Hours(float)

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

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

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

  • 在SQL Server中创建一个视图

  • 在EF中创建一个视图(不确定如何完成)

  • 使用控制器中的LINQ即时查找参考值

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

1 回答

  • 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))%>
    

相关问题