System.Data.Linq程序集概述
學習Linq時,經常會遇到System.Data.Linq程序集問題,這里將介紹System.Data.Linq程序集問題的解決方法。
本文我們將帶您學習怎樣映射一個類到數據庫中的二維表,以及怎樣從已存在的表中接收數據。
一.創(chuàng)建一個 Linq 項目
1. 單擊開始 | 程序 | Microsoft Visual Studio 2008 Beta 2 | Microsoft Visual Studio 2008 Beta 2 菜單命令。
2. 打開 Microsoft Visual Studio后,單擊 File | New | Project…菜單命令
3. 在 New Project 對話框中的 Project types中,單擊Other Languages | Visual Basic
4. 在對話框右側的 Templates中,選擇 Console Application
5. 在 Name字段中填寫 “Linq To Sql VB 2”為您的解決方案提供一個名字
6. 單擊 OK
二.增加一個引用到System.Data.Linq程序集
1. 在 Microsoft Visual Studio中,單擊 Project | Add Reference… 菜單命令
2. 打開 Add Reference 對話框,確保 .NET 標簽已被選擇
3. 選取System.Data.Linq程序集
4. 點擊OK
在Module1.vb中引入命名空間 System.Data.Linq,切記放置于模塊定義之前:
三.映射 Northwind Customers表
1. 在 Module1.vb 中輸入下列代碼,創(chuàng)建一個實體類以映射 Northwind 數據庫(馬上將 Customer 類定義置于 Module1定義之前)
- Public Class Customer
- <Column(IsPrimaryKey:=True)> _
- Public CustomerID As String
- End Class
Table 屬性映射一個類到數據庫中的表。然后,Column 屬性映射每一個字段到表中的一個行。在Customers 表中, CustomerID 是主鍵;并且當設置IsPrimaryKey 屬性為 true 時,它將被作為映射對象的標識。透過一個***的鍵,一個對象將成為數據庫中的實體。在這個示例中,Customers 類的實例都是實體。
2. 增加下列代碼,定義一個City 屬性的映射:
- <Table(Name:="Customers")>
- Public Class Customer
- Private _City As String
- <Column(IsPrimaryKey:=True)>
- Public CustomerID As String
- <Column(Storage:="_City")>
- Public Property City() As String
- Get
- Return _City
- End Get
- Set(ByVal value As String)
- _City = value
- End Set
- End Property
- End Class
在上一步中,我們看到字段可以被映射為數據表中的行,但是在大多數場景下,編程人員更偏好 Property 而不是字段存儲這些數據。每當定義了公開的映射用 Property,必須使用Column屬性的Storage 參數指定用于存儲數據的私有字段。
3. 將下列代碼添加到 Main方法中,指定對 Northwind 數據庫的介于基本數據庫與代碼構建的數據結構間的訪問并建立數據連接:
- Sub Main()
- '使用標準的數據連接字符串,您可以根據需要更改
- Dim db As New DataContext _
- ("Data Source=."sqlexpress; Initial Catalog=Northwind")
- '獲取一個用于進行強類型查詢的 Table 對象
- Dim Customers As Table(Of Customer)
- Customers = db.GetTable(Of Customer)()
- End Sub
Customers 對象(Table(Of T))提供了強類型的查詢支持。它并沒有包含基礎表的所有物理行,但是它為強類型的查詢提供了支持。從這一點來說,它的行為類似于一個代理對象。以上介紹System.Data.Linq程序集。
【編輯推薦】