2010-08-11 59 views
1

我最近重构我的应用程序有以下几点: LINQ到SQL数据库连接 对象的LINQ换到SQL类 映射器映射来回对象和LINQ到SQL实体来说 服务层调用库之间,将对象交给UI。MVC 2应用程序与关系数据库和对象包装 - 如何获得关系数据视图?

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

我有一个叫做SchoolProfile的能力,和一张叫做School的表。用户有一个SchoolProfile(与GPA,等级等),链接到一个学校。学校增加功能很简单 - 因为它没有外键。

为用户创建表单以列出所有SchoolProfiles时,他们不想看到SchoolId。之前在我看来,它只是学校规范。学校名称。现在,ShoolProfile是ViewData中的一个“平面”对象,没有任何属性。我想我可以创建其他类来获取相关数据(学校名称等),但感觉混乱。有什么建议么?

回答

1

我的建议是看ViewModels和AutoMapper。基本上你会为你的View创建一个特定的ViewModel,并且你可以包含SchoolName作为该ViewModel的一个属性。然后,您可以使用AutoMapper将您的域模型(形式为Linq到Sql)轻松映射到ViewModel。

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

+0

这很有趣 - 我喜欢AutoMapper的功能。现在我不想用第三方工具(它仍然非常简单)让我的应用程序停滞不前 - 但是阅读文档并观看一些视频给了我一个主意。我将为我的对象创建属性,这些属性不直接链接到linq到sql类的任何东西。然后将它们映射到我的映射器 - 使用linq to sql属性访问器。谢谢! – Jack 2010-08-11 03:31:22