Asp.net mvc 2 具有关系数据库和对象包装器的MVC2应用程序-如何将关系数据导入视图?

Asp.net mvc 2 具有关系数据库和对象包装器的MVC2应用程序-如何将关系数据导入视图?,asp.net-mvc-2,entity-relationship,relational-database,Asp.net Mvc 2,Entity Relationship,Relational Database,我最近用以下内容重构了我的应用程序: Linq到SQL数据库连接 对象来包装linq到sql类 在对象和Linq到Sql实体之间来回映射的映射器 服务层调用存储库,将对象交给UI 在我只是在UI中使用Linq to SQL对象之前(我知道)。但在展示关系时,这是如此简单。例如: 我有一个叫做SchoolProfile的表和一个叫做School的表。用户有一个学校档案(带有GPA、等级等),链接到一所学校。学校添加功能很容易,因为它没有外键 当用户创建表单列出所有学校档案时,他们不想看到学校ID。

我最近用以下内容重构了我的应用程序: Linq到SQL数据库连接 对象来包装linq到sql类 在对象和Linq到Sql实体之间来回映射的映射器 服务层调用存储库,将对象交给UI

在我只是在UI中使用Linq to SQL对象之前(我知道)。但在展示关系时,这是如此简单。例如:

我有一个叫做SchoolProfile的表和一个叫做School的表。用户有一个学校档案(带有GPA、等级等),链接到一所学校。学校添加功能很容易,因为它没有外键


当用户创建表单列出所有学校档案时,他们不想看到学校ID。在我看来,以前它只是schoolprofile.School.Name。现在,ShoolProfile在我的ViewData中是一个没有属性的“平面”对象。我想我可以创建其他类来获取相关数据(学校名称等),但这感觉很混乱。有什么建议吗?

我的建议是查看ViewModels和。基本上,您将为视图创建一个特定的ViewModel,您可以将SchoolName作为该ViewModel的属性。然后,您可以使用AutoMapper轻松地从域模型(从Linq到Sql)映射到ViewModel


基本上,您希望视图从ViewModel获取所需的所有信息。因此,根据需要显示的所有信息设计ViewModel。因此,它所需要做的就是取出ViewModel中的内容并将其吐出。

我的建议是查看ViewModels和。基本上,您将为视图创建一个特定的ViewModel,您可以将SchoolName作为该ViewModel的属性。然后,您可以使用AutoMapper轻松地从域模型(从Linq到Sql)映射到ViewModel


基本上,您希望视图从ViewModel获取所需的所有信息。因此,根据需要显示的所有信息设计ViewModel。因此,它所需要做的就是将ViewModel中的内容吐出来。

这很有趣-我喜欢AutoMapper的功能。现在我不想让我的应用程序陷入第三方工具的泥潭(它仍然相当简单)——但是阅读文档和观看一些视频给了我一个想法。我将为我的对象创建属性,这些属性不直接链接到LINQtoSQL类中的任何内容。然后使用我的映射器映射它们-使用linq到sql属性访问器。谢谢这很有趣-我喜欢AutoMapper的功能。现在我不想让我的应用程序陷入第三方工具的泥潭(它仍然相当简单)——但是阅读文档和观看一些视频给了我一个想法。我将为我的对象创建属性,这些属性不直接链接到LINQtoSQL类中的任何内容。然后使用我的映射器映射它们-使用linq到sql属性访问器。谢谢