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ÖÐδ¹«²¼µÄÀ©Õ¹´æ´¢¹ý³Ì
×÷Õß: echsys, ¡¡³ö´¦:blog,¡¡ÔðÈαà¼: ÀîÊéÇÙ,¡¡
2008-09-09 07:00
¡¡¡¡ÔÚSQL ServerÖаüº¬Á˼¸¸ö¿ÉÒÔ·ÃÎÊϵͳע²á±íµÄÀ©Õ¹´æ´¢¹ý³Ì¡£ËüÃÇÌṩÁËÔÚµ±Ç°µÄSQL Server°æ±¾ÖзÃÎÊϵͳע²á±íµÄÄÜÁ¦£¬¶øÇҺܶàÈËÀûÓÃSQL ServerÀ´½øÐй¥»÷ϵͳ¡£±¾ÎĽéÉÜÁËÈçºÎÔÚSQL ServerÖнûÓÃËûÃÇ¡£
......
SQL SERVERÐÔÄÜÓÅ»¯×ÛÊö
--ÔÖø:Haiwer
½üÆÚÒò¹¤×÷ÐèÒª£¬Ï£Íû±È½ÏÈ«ÃæµÄ×ܽáÏÂSQL SERVERÊý¾Ý¿âÐÔÄÜÓÅ»¯Ïà¹ØµÄ×¢ÒâÊÂÏÔÚÍøÉÏËÑË÷ÁËÒ»ÏÂ,·¢ÏֺܶàÎÄÕÂ,ÓеͼÁгöÁËÉϰÙÌõ,µ«ÊÇ×Ðϸ¿´·¢ÏÖ£¬ÓкܶàËÆÊǶø·Ç»òÕß¹ýʱ(¿ÉÄܶÔSQL SERVER6.5ÒÔǰµÄ°æ±¾»òÕßORACLEÊÇÊÊÓõÄ)µÄÐÅÏ¢£¬Ö»ºÃ×Ô¼º¸ù¾ÝÒÔǰµÄ¾ÑéºÍ²âÊÔ½á¹û½ ......
ACCESSÊý¾Ý¿â
1:CodeSmithÑ¡ÖÐÁ´½ÓÀàÐÍÊÇ£ºADOXSchema
2:ÎÞÃÜÂëµÄAccessÁ´½ÓΪ£º
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\hh\db.mdb;
3:ÓÐÃÜÂëµÄAccessÁ´½Ó£º
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\hh\db.mdb;
Jet OLEDB:Database Password=1111
SqlÊý¾Ý¿â
server=192.1.1.14;User ID=test; ......
Àý1 ´«ÈëÒ»¸ö²ÎÊý@username,ÅжÏÓû§ÊÇ·ñ´æÔÚ
-------------------------------------------------------------------------------
CREATE PROC IsExistUser
(
@username varchar(20),
@IsExistTheUser varchar(25) OUTPUT--Êä³ö²ÎÊý
)
as
SELECT @IsExistTheUser = count(username)
from users
WHERE username ......