本文继续学习之旅,一步一步通过ASP.NET MVC 1.0 实现NerdDinner 范例程序。

创建Model模型

在Model-View-Controller 框架中,model表示应用程序的数据对象,以及相应的业务领域逻辑,包括数据验证和业务规则。model是MVC应用程序的核心部分,下面我们会看到model的作用。

ASP.NET MVC框架支持使用任意数据访问技术,开发人员可以选择大量的.NET 数据访问技术实现model,如LINQ to Entities、LINQ to SQL、NHibernate、LLBLGen Pro、SubSonic、WilsonORM、或者基本的ADO.NET DataReaders、DataSets等等。

对于本范例程序NerdDinner,我们将采用LINQ to SQL创建一个简单的业务领域模型,非常接近于数据库的设计,并增加了一些定制的验证逻辑和业务规则。接下来实现一个repository类,帮助抽象化数据实体的实现,允许我们轻松实现单元测试。

LINQ to SQL

LINQ to SQL是.NET 3.5的ORM(Object Relational Mapper)部分。LINQ to SQL提供了一个简单的方式映射数据表到.NET 类。对于我们的NerdDinner范例程序,我们将映射Dinners和RSVP数据表到Dinner和RSVP模型类。Dinners和RSVP数据表中的列将映射为Dinner和RSVP模型类的属性。每一个Dinner和RSVP对象将表示Dinners或RSVP数据表中的一条单独的数据记录。

LINQ to SQL避免让我们手动创建SQL脚本从数据库中检索和更新Dinner和RSVP对象。在访问或更新数据库记录时,LINQ to SQL将负责生成合适的SQL执行逻辑。我们可以使用VB和C#支持的LINQ语言写查询表达式,检索Dinner和RSVP对象。这样可以大量减少代码行,构建清晰的应用程序。

增加LINQ to SQL类到项目程序中

现在终于可以回到我们的NerdDinner应用程序了!右键点击Models文件夹,选择Add -> New Item 菜单项。

一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 4(转载)

在弹出的Add New Item对话框,如下图所示。选择LINQ to SQL Classes模板,命名为NerdDinner.dbml,然后点击Add 按钮。Visual Studio 将添加NerdDinner.dbml 文件到\Models目录,并自动打开LINQ to SQL对象关系设计器。

一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 4(转载)

使用LINQ to SQL 创建Data Model Classes

LINQ to SQL允许我们从现有的数据库快速数据模型类。我们可以在Server Explorer窗口打开NerdDinner数据库,并选择需要建模的数据表。将表Dinners和RSVP表拖拉到NerdDinner.dbml设计器中,如下图所示。

一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 4(转载)

默认情况下,LINQ to SQL设计器在基于数据表创建类时,自动复数化表和列名。例如,范例中的Dinners表自动产生Dinner类。这一类的命名有助于我们的模型类符合.NET命名规范。但是,如果你不喜欢设计器自动生成的类或属性名,你可以在设计器中编辑或者通过属性列表进行更新。

另外,默认情况下,LINQ to SQL设计器也会自动监视主键/外键关系,并基于这些关系,创建不同模型类之间的关联关系。如上图所示,当我们拖拉Dinners 和 RSVP表到LINQ to SQL设计器上时,自动创建1对多的关联关系,图中通过一个箭头进行表示。

上述关联关系将让LINQ to SQL增加一个强类型的Dinner属性到RSVP类中,开发人员可以使用指定RSVP的Dinner属性访问关联的实体。也会让Dinner类有一个强类型的RSVP集合属性,允许开发人员检索和更新Dinner关联的RSVP对象集合。

下面,我们看看当创建RSVP对象,并增加到Dinner’s RSVP集合是,Visual Studio 的智能提示:

一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 4(转载)

从上可以看到LINQ to SQL如何为Dinner对象创建RSVPs 集合,我们使用这个关联数据表Dinner和RSVP之间的一个外键关系。

一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 4(转载)

如果你不喜欢设计器的建模或命名的关联关系,你可以更改。点击设计器中的关联箭头,访问属性窗口,可以进行重命名、删除或者更改。对于NerdDinner应用程序,我们将使用默认的设置。

一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 4(转载)

今天就到这里了,明天继续翻译ASP.NET MVC eBook – 开发NerdDinner 范例程序向导。欢迎访问http://blog.EntLib.com 博客平台获取更多的MVC学习资料。

相关资源下载链接:

1. ASP.NET MVC 1.0 正式版发布了!!!

http://forum.entlib.com/Default.aspx?g=posts&t=464

2. 免费ASP.NET MVC eBook 向导-电子书下载

http://blog.entlib.com/entlibforum/archive/2009/03/12/asp.net-mvc-ebook.aspx

相关文章:

  • 2021-09-08
  • 2021-07-13
  • 2021-12-06
  • 2021-12-27
  • 2021-06-18
  • 2022-12-23
猜你喜欢
  • 2022-02-03
  • 2022-01-17
  • 2021-05-24
  • 2021-07-28
  • 2021-11-15
  • 2021-06-30
  • 2022-02-12
相关资源
相似解决方案