【问题标题】:ASP.NET MVC - updating foreign keysASP.NET MVC - 更新外键
【发布时间】:2012-04-12 10:59:09
【问题描述】:

我刚刚开始研究 ASP.NET MVC,并且我正在使用最新的 beta(即 4)。我正在寻找一个相当 CRUD 场景的正确方法。我的主表(任务)看起来像这样 -

任务ID(整数) 员工 ID(整数) 项目 ID(整数) 部门 ID (int) 注释(varchar) 日期(日期时间) 小时数(浮点数)

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

按照各种教程,我使用实体框架创建了一个对象模型 (.edmx)。然后我使用“添加...控制器”并选择“具有读/写功能的控制器...”模板自动生成控制器。

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

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

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

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    希望拥有具有类似属性的 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))%>  
    

    【讨论】:

    • 你会在哪里填充视图模型?在控制器中?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-18
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 2014-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多