linq to sql Óï·¨ ѧϰ±Ê¼Ç ´æÒ»ÏÂ
Join²Ù×÷·û
ÊÊÓó¡¾°£ºÔÚÎÒÃÇ±í¹ØÏµÖÐÓÐÒ»¶ÔÒ»¹ØÏµ£¬Ò»¶Ô¶à¹ØÏµ£¬¶à¶Ô¶à¹ØÏµµÈ¡£¶Ô¸÷¸ö±íÖ®¼äµÄ¹ØÏµ£¬¾ÍÓÃÕâЩʵÏÖ¶Ô¶à¸ö±íµÄ²Ù×÷¡£
˵Ã÷£ºÔÚJoin²Ù×÷ÖУ¬·Ö±ðΪJoin(Join²éѯ), SelectMany(SelectÒ»¶Ô¶àÑ¡Ôñ)ºÍGroupJoin(·Ö×éJoin²éѯ)¡£
¸ÃÀ©Õ¹·½·¨¶ÔÁ½¸öÐòÁÐÖмüÆ¥ÅäµÄÔªËØ½øÐÐinner join²Ù×÷
SelectMany
˵Ã÷£ºÎÒÃÇÔÚд²éѯÓï¾äʱ£¬Èç¹û±»·Òë³ÉSelectManyÐèÒªÂú×ã2¸öÌõ¼þ¡£1£º²éѯÓï¾äÖÐûÓÐjoinºÍinto£¬2£º±ØÐë³öÏÖEntitySet¡£ÔÚÎÒÃÇ±í¹ØÏµÖÐÓÐÒ»¶ÔÒ»¹ØÏµ£¬Ò»¶Ô¶à¹ØÏµ£¬¶à¶Ô¶à¹ØÏµµÈ£¬ÏÂÃæ·Ö±ð½éÉÜһϡ£
1.Ò»¶Ô¶à¹ØÏµ(1 to Many)£º
var q =
from c in db.Customers
from o in c.Orders
where c.City == "London"
select o;Óï¾äÃèÊö£ºCustomersÓëOrdersÊÇÒ»¶Ô¶à¹ØÏµ¡£¼´OrdersÔÚCustomersÀàÖÐÒÔEntitySetÐÎʽ³öÏÖ¡£ËùÒÔµÚ¶þ¸öfromÊÇ´Óc.Orders¶ø²»ÊÇdb.OrdersÀï½øÐÐɸѡ¡£Õâ¸öÀý×ÓÔÚfrom×Ó¾äÖÐʹÓÃÍâ¼üµ¼º½Ñ¡ÔñÂ׶ؿͻ§µÄËùÓж©µ¥¡£
var q =
from p in db.Products
where p.Supplier.Country == "USA" && p.UnitsInStock == 0
select p;Óï¾äÃèÊö£ºÕâÒ»¾äʹÓÃÁËp.Supplier.CountryÌõ¼þ£¬¼ä½Ó¹ØÁªÁËSupplier±í¡£Õâ¸öÀý×ÓÔÚWhere×Ó¾äÖÐʹÓÃÍâ¼üµ¼º½É¸Ñ¡Æä¹©Ó¦ÉÌÔÚÃÀ¹úÇÒȱ»õµÄ²úÆ·¡£Éú³ÉSQLÓï¾äΪ£º
SELECT [t0].[ProductID], [t0].[ProductName], [t0].[SupplierID],
[t0].[CategoryID],[t0].[QuantityPerUnit],[t0].[UnitPrice],
[t0].[UnitsInStock], [t0].[UnitsOnOrder],[t0].[ReorderLevel],
[t0].[Discontinued] from [dbo].[Products] AS [t0]
LEFT OUTER JOIN [dbo].[Suppliers] AS [t1] ON
[t1].[SupplierID] = [t0].[SupplierID]
WHERE ([t1].[Country] = @p0) AND ([t0].[UnitsInStock] = @p1)
-- @p0: Input NVarChar (Size = 3; Prec = 0; Scale = 0) [USA]
-- @p1: Input Int (Size = 0; Prec = 0; Scale = 0) [0]2.¶à¶Ô¶à¹ØÏµ(Many to Many)£º
var q =
from e in db.Employees
from et in e.EmployeeTerritories
where e.City == "Seattle"
select new
{
e.FirstName,
Ïà¹ØÎĵµ£º
ÏÂÎçÏòÊý¾Ý¿âSQL SERVERÖÐÓöµ½Ìí¼ÓͼƬÀàÐÍÊý¾ÝµÄÎÊÌ⣬±¾ÒÔΪÔÚ½çÃæ¹ÜÀíÆ÷ÖпÉÒÔÖ±½Ó£¨Í¨¹ýÖ¸¶¨Â·¾¶°ÑͼƬµÄÊý¾Ý±£´æÆðÀ´£©Ìí¼ÓͼƬȴ²»È»¡£ÍøÉÏËÑÁËÏÂÕÒµ½ÁËÏà¹ØµÄ½ÏרҵµÄ×ÊÁÏ£¬ÕûºÏ½â¶Áһϣº Á½ÖÖ·½·¨£º µÚÒ»¾ÍÊÇÔÚÊý¾Ý¿âÖд洢ͼƬµÄ·¾¶£¬È»ºóÔÚ³ÌÐòÖиù¾Ý¶ÁÈ¡µÄ·¾¶¶ÁȡͼƬ£»ÕâÖ ......
µÚÒ»ÖÖ°ì·¨£ºÏÈÑ¡Öгö´íµÄÊý¾Ý¿â→Ñ¡ÖÐÒÔºóÓÒ¼üµã»÷ÊôÐԻᵯ³öÊý¾Ý¿âÊôÐÔ ¶Ô»°¿ò→Ñ¡ÖÐÊý¾Ý¿âÊôÐÔ¶Ô»°¿òÖеÄÑ¡Ïî→°ÑÑ¡ÏîÖеÄÅÅÐò¹æÔòÉèÖóÉ:Chinese_PRC_90_CI_AS→×îºóµã»÷È·¶¨¼´¿É¡£
£¨×¢Ò⣺ÔÚÑ¡ÔñÊý¾Ý¿âÊôÐÔµÄʱºò±ØÐëÈ·±£ÄãËùÐ޸ĵÄÊý¾Ý¿âδ±»Ê¹ÓòſÉÒÔÐ޸ķñÔò»áʧ°ÜµÄ£©
µÚ¶þÖÖ°ì·¨£ºÊ×ÏÈ´ò¿ªÄã ......
SQL SERVERÐÔÄÜÓÅ»¯×ÛÊö
--ÔÖø:Haiwer
½üÆÚÒò¹¤×÷ÐèÒª£¬Ï£Íû±È½ÏÈ«ÃæµÄ×ܽáÏÂSQL SERVERÊý¾Ý¿âÐÔÄÜÓÅ»¯Ïà¹ØµÄ×¢ÒâÊÂÏÔÚÍøÉÏËÑË÷ÁËÒ»ÏÂ,·¢ÏֺܶàÎÄÕÂ,ÓеͼÁгöÁËÉϰÙÌõ,µ«ÊÇ×Ðϸ¿´·¢ÏÖ£¬ÓкܶàËÆÊǶø·Ç»òÕß¹ýʱ(¿ÉÄܶÔSQL SERVER6.5ÒÔǰµÄ°æ±¾»òÕßORACLEÊÇÊÊÓõÄ)µÄÐÅÏ¢£¬Ö»ºÃ×Ô¼º¸ù¾ÝÒÔǰµÄ¾ÑéºÍ²âÊÔ½á¹û½ ......
·½°¸Ò»£ºSQL×Ô´øµÄÊý¾Ý¿â±¸·Ý¼Æ»®
Ò»£º»ù±¾Ë¼Â·
1£ºÒªÊµÏÖÒìµØ±¸·Ý£¬±ØÐëʹÓÃÓòÓû§ÕʺÅÀ´Æô¶¯SQL Server·þÎñÒÔ¼°SQL Server Agent·þÎñ£¬ÒòΪ±¾µØÏµÍ³ÕÊ»§ÎÞ·¨·ÃÎÊÍøÂç¡£
2£ºÔÚÒìµØ»úÆ÷Öн¨Á¢Ò»¸öÓëSQL Server·þÎñÆ÷ÖÐÆô¶¯SQL Server·þÎñµÄÓòÓû§ÕʺÅͬÃûÕʺÅ,ÇÒÃÜÂë±£³ÖÏàͬ¡£ÔÚÒìµØ»úÆ÷Öн¨Á¢Ò»¸ö¹²ÏíÎļþ¼Ð£¬²¢ÉèÖÃºÏ ......
Update Channel set Unit ='mg' ,
RunUpThreshold='10' ,
RunDownThreshold='10' ,
SafetyUpThreshold='10' ,
SafetyDownThreshold='10'
where Bridge='001' and DeviceCode='AS'
and SensorCode='001' and Supplement='N'
set £º ','
where: and ......