×ß½øLinq Linq to SQLÔ´´úÂëÉÍÎö
ÔÚDataContextÖÐÎÒÃÇ´ò½»µÀ×î¶àµÄÒ²Ðí¾ÍÊÇGetTable<TEntity>()·½·¨ÁË£¬Õâ¸ö·½·¨»á»ñȡһ¸öTable<TEntity>¶ÔÏ󣬽ñÌìÎÒÃǾÍÀ´¿´¿´Õâ¸ö¶ÔÏóÊÇÈçºÎ»ñÈ¡µÄ¡£
¡¡¡¡¶ÔÓÚ»ñÈ¡Table<TEntity>¶ÔÏóÎÒÃÇ»¹Òª¿´¿´Õâ¸öDataContextÊDz»ÊÇÇ¿ÀàÐ͵쬹ØÓÚÇ¿ÀàÐ͵ÄDataContext¿ÉÒÔ¿´ÎÒÇ°ÃæÒ»ÆªÎÄÕ£¬Ç¿ÀàÐ͵ÄDataContextÀï°üº¬Óм¸¸öTable<TEntity>ÀàÐ͵ÄÊôÐÔ£¬±ÈÈçÎÒÃǵĿâÖÐÓÐblogs¡¢postsµÈÊý¾Ý
¿â±í£¬ÄÇôÄã¿ÉÄܾͻὨÁ¢Table<Blog>ºÍTable<Post>ÀàÐ͵ÄÊôÐÔ£¨²Î¼ûÇ°ÃæÒ»ÆªÎÄÕ£©¡£ÔÚÉÏÒ»ÕÂDataContextµÄ³õʼ»¯Àï½²µ½Init·½·¨µÄ×îºóÒ»ÐÐÊÇInitTables·½·¨µÄµ÷Óá£ÎÒÃÇÊ×ÏÈÀ´¿´¿´InitTables·½·¨µÄ´úÂ룺
///<summary>
///³õʼ»¯Êý¾Ý¿âÖÐÓм¸¸ö±í
///´Ó·½·¨ÊµÏÖÖÐÒâͼÀ´¿´£¬Õâ¸ö·½·¨Ö÷ÒªÔÚ¶¨ÒåÁËÇ¿ÀàÐ͵ÄDataContext²ÅÓÐÒâÒå
///ÔÚÇ¿ÀàÐ͵ÄDataContextÀïÒ»°ã¶¨ÒåÁËTable<Post>Ö®ÀàµÄ×Ö¶ÎÀ´±íʾÊý¾Ý¿âÖÐÓм¸¸ö
///±í£¬¸Ã·½·¨µ÷ÓÃDataContextµÄGetTable·½·¨ÉèÖÃÕâЩ×ֶεÄÖµ
///</summary>
///<paramname="schema"></param>
private void InitTables(objectschema)
{
¡¡¡¡//Ó÷´Éä±éÀúDataContextÀࣨ¿ÉÄÜÊÇËüµÄ×ÓÀࣩÀïËùÓеĹ«ÓÐʵÀý×Ö¶Î
¡¡¡¡¡¡foreach(FieldInfo info in schema.GetType().GetFields(BindingFlags.Public|BindingFlags.Instance))
¡¡¡¡{
¡¡¡¡¡¡¡¡//×Ö¶ÎÀàÐÍ
¡¡¡¡¡¡¡¡Type fieldType=info.FieldType;
¡¡¡¡¡¡¡¡//¸Ã×Ö¶ÎÊÇ·ñÊÇ·ºÐ͵쬲¢ÇÒÊÇTable<>ÀàÐ͵쬶øÇÒ¸Ã×ֶεÄֵΪnull
¡¡¡¡¡¡¡¡if((fieldType.IsGenericType&&(fieldType.GetGenericTypeDefinition()==
¡¡¡¡¡¡¡¡¡¡¡¡typeof(Table<>)))&&(((ITable)info.GetValue(schema))==null))
¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡//»ñÈ¡Table<TEntity>ÖÐTEntityµÄ¾ßÌåÀàÐÍ
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Typetype=fieldType.GetGenericArguments()[0];
¡¡¡¡¡¡¡¡¡¡¡¡¡¡//µ÷ÓÃDataContextµÄGetTable·½·¨µÃµ½Ò»¸öITable¶ÔÏó
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ITable table=this.GetTable(type);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡//ÉèÖÃÖµ
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡info.SetValue(schema,table);
¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡}
}
´úÂëÖеÄ×¢ÊÍ˵µÄºÜÏêϸÁË£¬ÏÈ¿´¿´DataContextÀàÀïÊÇ·ñÓÐTable<TEntity>µÄÊôÐÔ£¬¶øÖ»ÓÐÔÚÇ¿ÀàÐ͵ÄDataContextÇé¿öϲŻáÓеġ£ËùÒÔÖ»ÓÐÔÚÇ¿ÀàÐ͵ÄÇé¿öϲŻáÔÚ³õʼ»¯DataContextµÄʱºòÉèÖÃÕâЩTable<
Ïà¹ØÎĵµ£º
Ò»¡¢SQL SERVER ºÍACCESSµÄÊý¾Ýµ¼Èëµ¼³ö
³£¹æµÄÊý¾Ýµ¼Èëµ¼³ö£º
ʹÓÃDTSÏòµ¼Ç¨ÒÆÄãµÄAccessÊý¾Ýµ½SQL Server£¬Äã¿ÉÒÔʹÓÃÕâЩ²½Öè:
¡¡¡¡¡ð1ÔÚSQL SERVERÆóÒµ¹ÜÀíÆ÷ÖеÄTools£¨¹¤¾ß£©²Ëµ¥ÉÏ£¬Ñ¡ÔñData Transformation
¡¡¡¡¡ð2Services£¨Êý¾Ýת»»·þÎñ£©£¬È»ºóÑ¡Ôñ czdImport Data£¨µ¼ÈëÊý¾Ý£©¡£
¡¡¡¡¡ ......
SQL SERVER ·þÎñ
SQL Server Analysis Services £ºÎªÉÌÒµÖÇÄÜÓ¦ÓóÌÐòÌṩÁª»ú·ÖÎö´¦Àí(OLAP)ºÍÊý¾ÝÍÚ¾ò¹¦ÄÜ(ºËÐÄ·þÎñ)¡£
SQL Server Browser£º½« SQL Server Á¬½ÓÐÅÏ¢Ìṩ¸ø¿Í»§¶Ë¼ÆËã»ú
SQL Server FullText Search£º¿ìËÙ´´½¨½á¹¹»¯ºÍ°ë½á¹¹»¯Êý¾ÝµÄÄÚÈݺÍÊôÐÔ
SQL Server VSS Writer£ºÌṩͨ¹ý Windows VSS »ù´¡½á¹¹ ......
SELECT
count
(
userName
)
from
`userInfo`
GROUP
BY
userName
HAVING
count
(
userName
)
>
1¡£
Õâ¸öHavingÒ»¶¨Òª·ÅÔÚGROUP BYµÄºóÃæ¡£
¶øÇÒºÜÌØÊâµÄÇé¿öÊÇÔÚÓÐgroup byµÄʱºò£¬ÊDz»ÄÜÓõ½where×Ó¾äµÄ¡£¶øÇÒHaving×Ó¾äÒ»°ãÊÇ·ÅÔÚÆäËû×Ó¾äµÄºóÃæµÄ¡£
µ±ÎÒÃÇÑ¡²»Ö»Ò»¸öÀ¸Î»£¬ÇÒÆä ......
1¡¢°´Äê²éѯ£ºselect * from dbo.td_BBSBoardInfo where (year(BBI_DateTime) between 2006 and 2009)
°´Ô¡¢ÈÕ²éѯֻҪ½«year ¸ÄΪ month¡¢data
2¡¢°´ÄêÔ²éѯ£ºselect * from dbo.td_BBSBoardInfo where convert(varchar(6),BBI_DateTime,112) between 200606 and 200911 ......