MVC / EF基础知识 - 如何从MVC / EF中的混合表/对象返回值?

时间:2011-10-14 19:02:11

标签: asp.net-mvc entity-framework

我对MS MVC还不熟悉 - 到目前为止,我已经创建了基本的模板库项目(Home和About页面),并使用EF连接到我们现有的DB。该应用程序是一个基本的调查应用程序。

在数据库中,每个调查记录都有一个带有GUID的CreatedBy列。该GUID映射回我们的Logins数据库表,它是该成员的UserID。

好的,所以使用VS内置的脚手架,我为我们使用的每个主要对象创建了控制器,包括Login和Survey对象。脚手架在SurveyController中创建了一个Index(),它看起来像这样:

    public ViewResult Index()
    {
        return View(db.Surveys.ToList());
    }

当我运行应用程序时,一切都列出非常好,但在CreatedBy列中是一个很难看的GUID。这不是很有帮助,我真的想显示与该GUID相关联的实际成员的名称。

实现这一目标的最佳方法是什么?我想改变Survey对象,添加一个LoginName字段,并填充它,但是“打破”代码,如果我想稍后更新脚手架,我将丢失我在这里做的任何更改。

我确信这是一个常见问题。我想知道在返回视图时是否有最佳实践来组合跨表/跨对象数据?

1 个答案:

答案 0 :(得分:1)

我的个人(非MSFT批准的)建议是始终尝试使用“Code First”并尽可能远离ObjectContext。即使您有现有数据库,仍然可以使用reverse engineering the database with the power tools的代码优先(仍在CTP1中)。更具体地说,这个问题以及您在不久的将来可能遇到的许多问题可能会在tutorials on MSDN中得到解答。我们(EF团队)与ASP.NET MVC团队密切合作,确保这些教程具有高质量,听起来就像您需要的那样。确保在左侧导航栏中查找一个良好的起点。