快速业务通道

LINQ体验(18)——LINQ to SQL语句之视图和继承支持

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21

生成SQL语句如下,自己可以看懂了。

SELECT [t0].[ContactType], [t0].[ContactID], [t0].[CompanyName],
[t0]. [Phone], [t0].[HomePage],[t0].[ContactName],
[t0].[ContactTitle], [t0].[Address], [t0].[City], [t0].[Region],
[t0].[PostalCode], [t0].[Country], [t0].[Fax], [t0].[PhotoPath],
[t0].[Photo], [t0].[Extension]FROM [dbo].[Contacts] AS [t0]
WHERE ([t0]. [ContactType] = @p0) AND ([t0].[City] = @p1)
-- @p0: Input NVarChar (Size = 8; Prec = 0; Scale = 0) [Customer]
-- @p1: Input NVarChar (Size = 6; Prec = 0; Scale = 0) [London]

6.UseAsDefault形式

当插入一条记录时,使用默认的映射关 系了,但是在查询时,使用继承的关系了。具体看看生成的SQL语句就直截了当 了。

//插入一条数据默认使用正常的映射关系
Contact contact = new Contact()
{
  ContactType = null,
   CompanyName = "Unknown Company",
  Phone = "333 -444-5555"
};
db.Contacts.InsertOnSubmit(contact);
db.SubmitChanges();
//查询一条数据默认使用继承映射关系
var con =
  (from c in db.Contacts
   where c.CompanyName == "Unknown Company" &&
               c.Phone == "333-444-5555"
   select c).First ();

生成SQL语句如下:

INSERT INTO [dbo]. [Contacts]([ContactType], [CompanyName],
[Phone]) VALUES (@p0, @p1, @p2)
SELECT TOP (1) [t0].[ContactType], [t0].[ContactID],
[t0].[CompanyName], [t0].[Phone],[t0].[HomePage],
[t0]. [ContactName], [t0].[ContactTitle], [t0].[Address],
[t0].[City], [t0].[Region], [t0].[PostalCode], [t0].[Country],
[t0].[Fax], [t0].[PhotoPath],[t0].[Photo], [t0].[Extension]
FROM [dbo]. [Contacts] AS [t0]
WHERE ([t0].[CompanyName] = @p0) AND ([t0]. [Phone] = @p1)
-- @p0: Input NVarChar (Size = 15; Prec = 0; Scale = 0)
  [Unknown Company]
-- @p1: Input NVarChar (Size = 12; Prec = 0; Scale = 0)
  [333-444-5555]

7.插入新 的记录

这个例子说明如何插入发货人的联系方式的一条记录。

//1.在插入之前查询一下,没有数据
var ShipperContacts =
  from sc in db.Contacts.OfType<ShipperContact>()
  where sc.CompanyName == "Northwind Shipper"
   select sc;
//2.插入数据
ShipperContact nsc = new ShipperContact()
{
  CompanyName = "Northwind Shipper",
  Phone = "(123)-456-7890"
};
db.Contacts.InsertOnSubmit(nsc);
db.SubmitChanges();
//3. 查询数据,有一条记录
ShipperContacts =
  from sc in db.Contacts.OfType<ShipperContact>()
  where sc.CompanyName == "Northwind Shipper"
  select sc;
//4.删除记录
db.Contacts.DeleteOnSubmit(nsc);
db.SubmitChanges();

生成SQL语句如下:

SELECT COUNT(*) AS [value] FROM [dbo].[Contacts] AS [t0]
WHERE ([t0].[CompanyName] = @p0) AND ([t0].[ContactType] = @p1)
AND ([t0].[ContactType] IS NOT NULL)
-- @p0: Input NVarChar [Northwind Shipper]
-- @p1: Input NVarChar [Shipper]
INSERT INTO [dbo].[Contacts]([ContactType], [CompanyName], [Phone])
VALUES (@p0, @p1, @p2)
-- @p0: Input NVarChar [Shipper]
-- @p1: Input NVarChar [Northwind Shipper]
-- @p2: Input NVarChar [(123)-456-7890]
SELECT COUNT(*) AS [value] FROM [dbo].[Contacts] AS [t0]
WHERE ([t0].[Compa

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号