文字显示结果
组合搜索  计算机图书分类目录
 
所在位置: 图书 -> 在线试读 -> Visual Basic 2008高级编程(第5版) 
                 

第十一章 LINQ

11.4 定制对象和O/R设计器

除了在自己的.vb文件中建立定制对象,再把该类与前面建立的DataContext对象关联起来之外,还可以使用Visual Studio 2008中的O/R设计器建立自己的类文件。完成后,Visual Studio会创建相应的.vb文件。使用O/R设计器,还可以得到类文件和所有已建立关系的可视化表示。

例如,查看.dbml文件的Designer视图,注意工具箱中有3项:ClassAssociationInheritance。从工具箱中选择Class对象,把它拖放到设计界面上,就会显示泛型类的图像,如图11-8所示。

在图中单击Class1名称,把这个类重命名为Customer。接着右击该名称的旁边,从弹出的菜单中选择Add | Property菜单项,就可以给类文件添加属性。对于这个示例,给Customer类添加3个属性CustomerIDCompanyNameCountry。突出显示CustomerID属性,在Visual StudioProperties对话框中配置属性,把Primary Key设置从False改为True。接着突出显示整个类,进入Properties对话框,把Source属性改为Customers,因为这是这个Customer对象需要使用的表名。之后,会得到类的可视化表示,如图11-9所示。

                             

    11-8                                 11-9

如图11-9所示,CustomerID属性名的旁边显示了一个主键图标。之后,单击Northwind.dbml文件旁边的加号,会显示两个文件Northwind.dbml.layoutNorthwind.designer.vbNorthwind.dbml.layout文件是一个XML文件,它有助于Visual StudioO/R设计器中显示可视化表示。最重要的文件是Northwind.designer.vb,这是我们创建的Customer类文件。如果打开这个文件,就可以看到Visual Studio创建的内容。

首先,代码中的Customer类文件如下所示:

<Table(Name:="Customers")> _

Partial Public Class Customer

Implements System.ComponentModel.INotifyPropertyChanging, _

System.ComponentModel.INotifyPropertyChanged

 

Code removed for clarity

 

End Class

Customer类是根据我们在数据库中提供的内容指定的类名。这个类有Table特性,其Name值是Customers,这是该对象在连接Northwind数据库时需要使用的数据库名称。

Customer类中定义了3个属性。下面是其中一个属性CustomerID

<Column(Storage:="_CustomerID", CanBeNull:=false, IsPrimaryKey:=true)> _

Public Property CustomerID() As String

Get

Return Me._CustomerID

End Get

Set

If (String.Equals(Me._CustomerID, value) = false) Then

Me.OnCustomerIDChanging(value)

Me.SendPropertyChanging

Me._CustomerID = value

Me.SendPropertyChanged("CustomerID")

Me.OnCustomerIDChanged

End If

End Set

End Property

与以前一样,建立定制类时,所定义的属性使用Column特性和这个特性提供的一些属性。主键设置用IsPrimaryKey项指定。

另外,Customer类继承自DataContext对象:

<System.Data.Linq.Mapping.DatabaseAttribute(Name:="NORTHWND")> _

Partial Public Class NorthwindDataContext

Inherits System.Data.Linq.DataContext

 

' Code removed for clarity

 

End Class

这个DataContext对象NorthwindDataContext可以连接Northwind数据库,使用Customers表,与前面的示例相同。

使用O/R设计器可以使数据库对象类文件的创建非常简单、直接。但如果要对所有的内容进行全面控制,必须编写所有的代码,才能获得需要的结果。

 
 
  上一页 返回 下一页  
 
Copyright © 2010 TianMei Technology All rights reserved. To comment on this site
  辽B-2-4-20100065