3

我已经为学校启动了一个项目,其中我使用 ASP.NET MVC 2 + LINQ2SQL 和一个业务层,因此我的 UI 不会直接与数据库交互。我的问题是这样的:

在我的 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 不应该完全独立于我的数据层吗?或者,也许我对这一切都错了。

4

2 回答 2

3

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

所以它看起来像:

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

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

于 2010-04-26T22:25:54.047 回答
1

看看 MVC Central 的 Golf Tracker Series,它可以满足您的需求以及 Kelsey 所描述的。

http://www.mvccentral.net

于 2010-05-17T21:08:15.143 回答