使用语言集成查询 (LINQ) 可以轻松访问数据库信息和执行查询。
以下示例演示如何创建一个对 SQL Server 数据库执行查询的新应用程序。 该示例使用
Aggregate
和
Group By
子句确定结果的最小值和最大值。 有关详细信息,请参阅
Aggregate 子句
和
Group By 子句
。
本主题中的示例使用 Northwind 示例数据库。 如果你的开发计算机上没有此数据库,可以从 Microsoft 下载中心进行下载。 有关说明,请参阅
下载示例数据库
。
以下说明中的某些 Visual Studio 用户界面元素在计算机上出现的名称或位置可能会不同。 这些元素取决于你所使用的 Visual Studio 版本和你所使用的设置。 有关详细信息,请参阅
个性化设置 IDE
。
创建与数据库的连接
在 Visual Studio 的“视图”菜单中,单击“服务器资源管理器”/“数据库资源管理器”,打开“服务器资源管理器”/“数据库资源管理器”。
在“服务器资源管理器”/“数据库资源管理器”中右键单击“数据连接”,然后单击“添加连接”。
指定与 Northwind 示例数据库的有效连接。
添加包含 LINQ to SQL 文件的项目
在 Visual Studio 中的“文件”菜单上,指向“新建”,然后单击“项目”。 选择 Visual Basic“Windows 窗体应用程序”作为项目类型。
在
“项目”
菜单上,单击
“添加新项”
。 选择“LINQ to SQL 类”项模板。
命名文件
northwind.dbml
。 单击“添加”。 将打开 northwind.dbml 文件的对象关系设计器(O/R 设计器)。
将要查询的表添加到 O/R 设计器
在“服务器资源管理器”/“数据库资源管理器”中,展开与 Northwind 数据库的连接。 展开
“表”
文件夹。
如果关闭了 O/R 设计器,可通过双击先前添加的 northwind.dbml 文件来重新打开它。
单击“Customers”表并将其拖放到设计器的左侧窗格中。 单击“Orders”表并将其拖放到设计器的左侧窗格中。
设计器将为项目创建新的
Customer
和
Order
对象。 请注意,设计器会自动检测表之间的关系,并为相关对象创建子属性。 例如,IntelliSense 将显示
Customer
对象具有与该客户相关的所有订单的
Orders
属性。
保存更改并关闭设计器。
保存你的项目。
添加代码以查询数据库并显示结果
从“工具箱”中,将
DataGridView
控件拖放到项目的默认 Windows 窗体 (Form1) 中。
双击“Form1”,将代码添加到该窗体的
Load
事件。
将表添加到 O/R 设计器后,设计器将为项目添加一个
DataContext
对象。 此对象包含访问这些表以及每个表的各个对象和集合所需的代码。 项目的
DataContext
对象是根据 .dbml 文件的名称命名的。 对于此项目,
DataContext
对象命名为
northwindDataContext
。
可以在代码中创建
DataContext
的实例,并查询 O/R 设计器指定的表。
将以下代码添加到
Load
事件中。 此代码查询作为数据上下文的属性公开的表,并确定结果的最小值和最大值。 该示例使用
Aggregate
子句查询单个结果,并使用
Group By
子句显示已分组结果的平均值。
Dim db As New northwindDataContext
Dim minimumOrders = Aggregate cust In db.Customers
Where cust.City = "London"
Into Min(cust.Orders.Count)
MsgBox("Minimum Orders from a London Customer: " & minimumOrders)
Dim maximumOrdersByCountry = From cust In db.Customers
Group By cust.Country
Into MaxOrders = Max(cust.Orders.Count)
DataGridView1.DataSource = maximumOrdersByCountry
按 F5 运行项目并查看结果。
LINQ to SQL
DataContext 方法(O/R 设计器)