Asp.net mvc 在单独的部件中使用MVC2.0和模型

Asp.net mvc 在单独的部件中使用MVC2.0和模型,asp.net-mvc,linq-to-sql,bll,Asp.net Mvc,Linq To Sql,Bll,我是MVC新手,尽管有很多(我的意思是很多)非常有用的信息,但很难清楚地了解如何使用MVC 2.0实现我的确切需求 我想建立一个如下的解决方案: 使用MVC2.0项目提供web UI 使用Linq到SQL类项目进行数据持久化 我有两个独立的代码模块,需要访问上面的Linq-to-SQL模型,因此我无法将我的Linq-to-SQL模型直接包含在MVC项目本身中 在我的LINQtoSQL项目前面还有一个业务逻辑层 我的问题是: 如何设置MVC应用程序的模型部分,以通过BLL指向Linq到SQL

我是MVC新手,尽管有很多(我的意思是很多)非常有用的信息,但很难清楚地了解如何使用MVC 2.0实现我的确切需求

我想建立一个如下的解决方案:

  • 使用MVC2.0项目提供web UI
  • 使用Linq到SQL类项目进行数据持久化
  • 我有两个独立的代码模块,需要访问上面的Linq-to-SQL模型,因此我无法将我的Linq-to-SQL模型直接包含在MVC项目本身中
  • 在我的LINQtoSQL项目前面还有一个业务逻辑层
我的问题是:

  • 如何设置MVC应用程序的模型部分,以通过BLL指向Linq到SQL项目
  • 如何执行web应用验证?我可以使用MVC2.0模型验证吗?如果没有,还有什么选择
  • 最后(稍微放一放)-什么是ViewModel,它与模型有何不同
这么多问题。但这是一项令人兴奋的新技术,除了数据访问问题之外,其他所有我必须很快解决的问题,我认为MVC2.0非常棒

感谢您提供的任何建议

如何设置我的模型部分 MVC应用程序指向我的Linq to 通过我的BLL的SQL项目

通常,您会为此使用存储库模式。控制器具有对存储库的引用-存储库从数据库返回域对象。MVC应用程序不知道LINQ to SQL是否存在

如何执行web应用验证? 我可以使用MVC2.0模型验证吗?如果 不是,还有什么选择

将视图模型放在MVC项目中。这些视图模型可能与您的域模型密切相关,但它们关注的是表示模型。将数据注释放在这些视图模型上进行验证——MVC框架将自动确保在这些用数据注释装饰的视图模型上进行验证。它是可插拔的,所以您可以使用替代方案——但对于MVC2,它的嵌入相当好,这包括客户端验证

最后(稍微放在一边)是什么 ViewModel和它有何不同 从模型中

我部分回答了上面这个问题。域模型的形状可能不是显示视图所需的形状-视图模型很好地弥补了这一差距。此外,即使形状确实匹配,视图模型仍然是一个好主意,这样您就可以在其中放置UI验证代码和其他表示元数据(因为您不希望域模型上有任何与表示逻辑相关的内容)

这里是链接

希望这有帮助

  • 可以添加对从BLL部件中公开的对象的引用,并将其用作模型

  • 当您要向生成的类添加验证时,请使用

  • ViewModel是模型数据的自定义形状聚合。每个视图只有一个视图,因为ViewModel的目的是以方便简洁的方式精确显示特定视图所需的数据

  • 例如,包含订单和订单详细信息的视图。ViewModel可以保存对每种类型的存储库和业务对象的内部引用。ViewModel的属性将来自这些对象的数据合并在一起

    ViewModels在您的情况下也很有用,因为您希望模型位于单独的部件中。您可以将DataAnnotations应用于ViewModel属性以进行验证。您将使“原始”业务对象模型成为ViewModels的内部属性,并公开用于检索和持久化数据的公共方法