1.4.3 LINQ to SQL 对数据库应用查询表达式
/****** Object: Table [dbo].[Product] Script Date: 04/24/2012 23:58:49 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Product]') AND type in (N'U')) DROP TABLE [dbo].[Product] GO USE [C:\USERS\JON\DOCUMENTS\COMPUTING\AUTHORING\CSHARP 2 AND 3\BOOK\CODE\DATABASES\LINQDEMO.MDF] GO /****** Object: Table [dbo].[Product] Script Date: 04/24/2012 23:58:49 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Product]( [ProductID] [int] IDENTITY(1,1) NOT NULL, [Name] [nvarchar](50) NOT NULL, [Price] [decimal](18, 2) NOT NULL, [SupplierID] [int] NOT NULL ) ON [PRIMARY] GO /****** Object: Table [dbo].[Supplier] Script Date: 04/24/2012 23:58:55 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Supplier]') AND type in (N'U')) DROP TABLE [dbo].[Supplier] GO USE [C:\USERS\JON\DOCUMENTS\COMPUTING\AUTHORING\CSHARP 2 AND 3\BOOK\CODE\DATABASES\LINQDEMO.MDF] GO /****** Object: Table [dbo].[Supplier] Script Date: 04/24/2012 23:58:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Supplier]( [SupplierID] [int] IDENTITY(1,1) NOT NULL, [Name] [nvarchar](50) NOT NULL ) ON [PRIMARY] GO
添加 LINQ to SQL 文件,配置数据库连接,之后把两个表拖到界面上,后台类名改为 LinqDemoDataContext
using (LinqDemoDataContext db = new LinqDemoDataContext()) { var filtered = from p in db.Product join s in db.Supplier on p.SupplierID equals s.SupplierID where p.Price > 10 orderby s.Name, p.Name select new { SupplierName = s.Name, ProductName = p.Name }; foreach (var v in filtered) { Console.WriteLine("Supplier={0};Product={1}", v.SupplierName, v.ProductName); } }