asp.net-mvc - MVC + 存储库模式 - 仍然依赖于数据模型?

标签 asp.net-mvc mvccontrib

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

在我的 MVC 项目中,当显示 View 和传递数据时,我仍然必须包含我的数据项目以访问我的 Linq2Sql 项目中的类。这是正确的吗?

例子:

Controller :

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

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

最佳答案

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

看起来像:

LinqToSQL 类 -> MyClass(此时从存储库输出)->( Controller 映射到特定 View 的模型)MyModel。

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

关于asp.net-mvc - MVC + 存储库模式 - 仍然依赖于数据模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2717247/

相关文章:

javascript - MVC 等效于通过 javascript 的 @Html.ActionLink

javascript - 如何获取客户端通过 HTTP GET 请求传递的参数?

asp.net-mvc-3 - ASP.NET MVC 3、Razor View 和可移植区域

validation - ASP.NET mVC 3.0验证MVCContrib复选框

c# - SimpleMembershipProvider - 密码加密

asp.net - Autofac 无法从 asp.net 5 中的程序集扫描中解析类型

asp.net - 使用 Html.TextBox 添加一个 css 类

asp.net-mvc - MvcContrib 网格和显示/编辑模板

c# - 如何将自定义列添加到 MvcContrib 网格?

asp.net-mvc - mvc contrib 寻呼机问题 - AsPagination