asp.net-mvc - 在单独的程序集中使用 MVC 2.0 和模型

标签 asp.net-mvc linq-to-sql bll

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

我想设置一个解决方案如下:

  • 使用 MVC 2.0 项目提供 Web UI。
  • 使用 Linq to SQL 类项目进行数据持久化。
  • 我有两个单独的代码模块需要访问上面的 Linq to SQL 模型——所以我不能将我的 Linq to SQL 模型直接包含在 MVC 项目本身中。
  • 我的 Linq to SQL 项目前面还有一个业务逻辑层。

  • 我的问题是:
  • 如何设置我的 MVC 应用程序的模型部分以通过我的 BLL 指向我的 Linq to SQL 项目?
  • 如何执行 Web 应用程序验证?我可以使用 MVC 2.0 模型验证吗?如果不是,有什么替代方案?
  • 最后(稍微撇开一点)——什么是 ViewModel,它与 Model 有什么不同?

  • 这么多的问题。但这是一项令人兴奋的新技术和数据访问问题,我必须非常快速地掌握其他一切,我认为 MVC 2.0 非常棒。

    感谢您提供的任何指示。

    最佳答案

    How do I set up the Model part of my MVC application to point to my Linq to SQL project via my BLL?



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

    How do I perform web app validation? Can I use MVC 2.0 Model Validation? If not what are the alternatives?



    将 View 模型放入您的 MVC 项目中。这些 View 模型可能与您的领域模型紧密结合,但它们关注的是表示模型。将数据注释放在这些 View 模型上进行验证 - MVC 框架将自动确保在这些用数据注释修饰的 View 模型上进行验证。它是可插入的,因此您可以使用替代方案 - 但使用 MVC 2,它已经很好地融入其中,其中包括客户端验证。

    Finally (and slightly aside) - What is the ViewModel and how does this differ from the Model?



    我在上面部分回答了这个问题。您的域模型的形状可能不是您显示 View 所需的形状 - View 模型非常适合弥合这一差距。此外,即使形状确实完全匹配 - View 模型仍然是一个好主意,这样您就可以将 UI 验证代码和其他表示元数据放在那里(因为您不希望任何与域模型上的表示逻辑相关的东西) .

    这是 view model patterns 的链接.

    希望这可以帮助。

    关于asp.net-mvc - 在单独的程序集中使用 MVC 2.0 和模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3632865/

    相关文章:

    asp.net - 在 asp.net 5 MVC 6 中使用 Linq to SQL

    c# - 如何将 Entity(EF) 和 EntityDTO 与 Contract(Interface) 一起使用

    Jquery Rest 与 WCF 3.5 的通信

    asp.net-mvc - 具有自定义身份验证的自定义AuthorizeAttribute

    sql - LINQ:计算多列中真正 bool 值的数量

    c# - 数据访问层的计算

    asp.net-mvc - asp.net mvc相当于rails回调before_save

    asp.net-mvc - ViewData Dictionary 的范围是什么?

    sql - 为什么此 LINQ 查询将值 1 分配给数据库中的 NULL 值?