MVC +存储库模式 - 仍取决于数据模型?

时间:2010-04-26 22:03:21

标签: asp.net-mvc mvccontrib

我已经开始了一个学校项目,我正在使用ASP.NET MVC 2 + LINQ2SQL和一个业务层,所以我的UI不直接与DB交互。我的问题是:

在我的MVC项目中,当提出视图并传递数据时,我仍然必须包含我的Data项目以访问我的Linq2Sql项目中的类。这是对的吗?

示例:

控制器:

ClassesRepository cr = new ClassesRepository(); // this is from my Business project
Class classToEdit = cr.GetByClassId(id); // "Class" is from my data project

我仍然需要在我的linq2sql数据项目中引用Class类 - 我的UI不应该完全独立于我的数据层吗?或者也许我说这一切都错了。

2 个答案:

答案 0 :(得分:3)

我更喜欢让我的Repository在内部对我自己的类进行映射。所以我从我的存储库返回的不是LinqToSql类,而是我自己的类。然后,我将返回的类数据映射到每个视图的模型中。

所以看起来像:

LinqToSQL类 - > MyClass(此时从Repository输出) - > (控制器映射到特定视图的模型)MyModel。

确保始终为每个视图制作模型。您可以使用您的存储库返回的内容,但这是一个捷径,并将其映射到自己的视图模型将在未来获得回报。

答案 1 :(得分:1)

看看MVC Central的高尔夫追踪系列,它可以满足你的需求,也可以用来描述Kelsey所描述的内容。

http://www.mvccentral.net