在向大家详细介绍生成的SQL语句之前,首先让大家了解下Linq使用数据表,然后全面介绍生成的SQL语句。
Linq使用数据表,只需将视图从“服务器资源管理器/数据库资源管理器”拖动到O/R 设计器上,自动可以创建基于这些视图的实体类。我们可以同操作数据表一样来操作视图了。这里注意:O/R 设计器是一个简单的对象关系映射器,因为它仅支持 1:1 映射关系。换句话说,实体类与数据库表或视图之间只能具有 1:1 映射关系。不支持复杂映射(例如,将一个实体类映射到多个表)。但是,可以将一个实体类映射到一个联接多个相关表的视图。下面使用NORTHWND数据库中自带的Invoices、Quarterly Orders两个视图为例,写出两个范例。
我们使用下面代码来查询出ShipCity 在London的发票。
- var q =
- from i in db.Invoices
- where i.ShipCity == "London"
- select new
- {
- i.OrderID,
- i.ProductName,
- i.Quantity,
- i.CustomerName
- };
这里,生成的SQL语句同Linq使用数据表类似:
- SELECT [t0].[OrderID], [t0].[ProductName], [t0].[Quantity],
- [t0].[CustomerName] FROM [dbo].[Invoices] AS [t0]
- WHERE [t0].[ShipCity] = @p0
- -- @p0: Input NVarChar (Size = 6; Prec = 0; Scale = 0) [London]
下例查询出每季的订单。
- var q =
- from qo in db.Quarterly_Orders
- select qo;
生成SQL语句为:
- SELECT [t0].[CustomerID], [t0].[CompanyName], [t0].[City],
- [t0].[Country] FROM [dbo].[Quarterly Orders] AS [t0]
【编辑推荐】