Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
.NET ·Ö²¼Ê½¼Ü¹¹¿ª·¢ÊµÕ½
 
×÷ÕߣºÐ¡Ñó£¨ÑàÑóÌ죩 À´Ô´£º²©¿ÍÔ° ·¢²¼ÓÚ£º2014-12-26
  3139  次浏览      27
 

ǰÑÔ£º±¾ÏµÁÐÎÄÕÂÖ÷Òª½²ÊöÒ»¸öʵʵÔÚÔÚµÄÏîÄ¿¿ª·¢µÄ¹ý³Ì£¬Ö÷Òª°üº¬£ºÌá³öÎÊÌ⣬½â¾öÎÊÌ⣬¼Ü¹¹Éè¼ÆºÍ¸÷¸öÂß¼­²ãµÄʵÏÖÒÔ¼°ÐÂÎÊÌâµÄ³öÏֺʹúÂëµÄÖØ¹¹¡£±¾ÏµÁÐÎÄÕÂÒÔ¹ÊʵÄÐÎʽչ¿ª£¬¶øÇÒÎÄÕÂÁоٵĺܶàÏîÄ¿µÄÃû³Æ£¬´ó¼ÒÒ²²»ÓÃÌ«¹ØÐÄ£¬ºÜ¶à¶¼ÊÇÐéÄâµÄ¡£

ÐÂÈËRichard±»·ÖÅäµ½ÁËÒ»¸öÆóÒµ×Ô¶¯»¯ÐÅÏ¢¹ÜÀíÏîÄ¿×é--Automation Information Management Project(ºóÃæ¼ò³ÆAIM)£¬µ±Richard½øÈëÏîÄ¿×éµÄʱºò£¬Õâ¸öÏîÄ¿ÒѾ­¿ªÊ¼ÁË£¬ÏîÄ¿µÄ¼Ü¹¹Ò²ÒѾ­ÔÚÁ½ÖÜ֮ǰ¹¹½¨ºÃÁË--SOA¼Ü¹¹£¬¶øÇÒʹÓõÄÖ÷Òª¼¼ÊõÒ²Çö¨ÁË:WCF, Linq.

×¢£ºÒòΪÏîÄ¿ÊÇÊ״βÉÓÃ"м¼Êõ"(ÒòΪÒÔǰûÓÐʹÓÃWCF,Linq£¬ËùÒÔ±»³ÆÎªÐ¼¼Êõ)£¬ÏîÄ¿¾ÍÕâÑù¿ªÊ¼½øÐÐÁË¡£

°ëÄêÖ®ºóÎÊÌâ¾Í¿ªÊ¼³öÏÖÁË(ÆäʵÎÊÌâ¾ÍÒ»¿ªÊ¼¾Í³öÏÖÁË£¬Ö»ÊÇ´ó¼Ò»¹ÈÏΪÎÊÌâ²»´ó)£ºÒòΪµ±³õÔÚÉè¼ÆµÄʱºò£¬ÏîÄ¿µÄ¼Ü¹¹ÊÇÓÉÏîÄ¿×éµÄÆäËûÁ½¸öÈËÉè¼ÆµÄ£¬Õû¸öÏîÄ¿¿ª·¢»ù±¾ÉϾÍûÓвÉÓÃÃæÏò¶ÔÏóµÄ˼ÏëÀ´¿ª·¢£¬¶øÇÒËäÈ»Ôڼܹ¹Éè¼ÆÉÏ·ÖÁË£ºÊý¾Ý²ã£¬ÒµÎñ²ã£¬·þÎñ²ã£¬ºÍUI²ã£¬µ«ÊǸ÷²ã֮ǰÊǽô½ôµÄñîºÏ£¬¿ÉÒÔ˵ÊÇ¡°Ç£Ò»·¢¶ø¶¯È«Éí¡±£ºÈçÊý¾Ý·ÃÎʲãÉÔ΢һ¸Ä£¬ÒµÎñ²ã¾Í¸ú×Ŷ¯£¬È»ºó¸Ä±äÒ»²ã²ãµÄ¿ªÊ¼²¨¼°¡£

´ó¼Ò¶¼¿ªÊ¼¾õµÃÕâÑùºÜÀÛ£¬µ«ÊÇÏîÄ¿ÒѾ­×öµ½Õâ¸ö½×¶ÎÁË£¬²»¿ÉÄÜÖØÀ´¡£Ã¿´ÎÐÂÐèÇóÒ»À´£¬ÏîÄ¿µÄµÄ¸Ä¶¯¿ÉÒÔ˵ÊÇÌì·­µØ¸²¡£¶øÇÒµ±³õÉè¼Æ¼Ü¹¹µÄÄÇλÈÊÐÖÒ²¾ÍÏîĿһ¿ªÊ¼µÄÒ»¸öÔºó¾Í×ßÁË¡£

ÏÂÃæµÄͼ¾ÍչʾÏîÄ¿Öеļܹ¹Éè¼Æ£º

Õ¦Ò»¿´ÆðÀ´»¹ÊDz»´íµÄ£¬Ò»°ãµÄ¼Ü¹¹¶¼ÊÇÕâÑùÉè¼ÆµÄ¡£ÏÂÃæ¾Í¿ªÊ¼½²ÊöËüÃÇÖ®¼äµÄһЩµ÷ÓùØÏµ£¬¿´¿´ÓÐʲôÎÊÌ⣺

Êý¾Ý·ÃÎʲ㣺

 public class EmployeeDAL
{
public List<Employee> GetAllEmplyees()
{
//...
}
}

ÆäÖÐEmployee¾ÍÊÇLinqÉú³ÉµÄÒ»¸öʵÌå¶ÔÏó¡£

ÒµÎñ²ã£º

´úÂë 
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->    
public class EmployeeBL
    {
        public List GetAllEmplyees()
        {
            EmployeeDAL employeeDAL = new EmployeeDAL();
            return employeeDAL.GetAllEmplyees();
        }
    }

·þÎñ²ã£º

public interface IEmployeeServices
    {
        List GetAllEmplyees();
    }


    public class EmployeeServices : IEmployeeServices
    {
        public List GetAllEmplyees()
        {
            EmployeeBL employeeBL = new EmployeeBL();
            return employeeBL.GetAllEmplyees();
        }
    }

È»ºó¾ÍÊÇÔÚ¿Í»§¶ËÉú³É´úÀí£¬È»ºóÔÚUIÖо͵÷ÓÃÁËÌṩµÄ·½·¨¡£

ÏÖÔÚÒ»¸ö×îÃ÷ÏÔµÄÎÊÌâ¾ÍÊÇ£º°ÑÊý¾Ý²ãµÄÊý¾ÝʵÌåEmployeeÒ»²ã²ãµÄ´«µÝ£¬×îºóµ½Á˿ͻ§¶ËµÄUI´úÂëÖУ¬¶øÒµÎñ²ãÖеÄEmployeeBL»ù±¾ÉÏûÓÐÆðµ½Ê²Ã´×÷Óã¬Ö»ÊÇÆðµ½Ò»¸ö¹ý¶ÉµÄ×÷Óã¬Ö»ÊÇÔÚInsert £¬Update,ºÍDeleteµÄʱºò£¬¶ÔһЩ×ֶνøÐÐÁËÏàÓ¦µÄCheckºÍValidation£¬ÈçEmail¸ñʽÊÇ·ñÕýÈ·µÈµÈ¡£ÆäËûµÄһЩÁ÷³ÌµÄCheckÒ²ÊÇ´úÂëµÄ¶Ñ»ý£¬ÒµÎñÀàºÜ"Èõ"¡£

×ܵĿ´ÆðÀ´¾ÍÊÇ"Ç£Ò»·¢¶ø¶¯È«Éí"µÄЧ¹û¡£

¶øÇÒÔÚ¿ª·¢¹ý³Ì£¬·Ö²ãµÄºÃ´¦»ù±¾Ã»ÓÐÌåÏÖ³öÀ´¡£

ÔÚÒµÎñÀàµÄÉè¼ÆµÄʱºò£¬ËùÓеÄÒµÎñÀà¶¼ÏԵñȽϵÄ"Èõ"£¬Ö®ËùÒÔÕâô˵£¬Ö÷ÒªÊÇ»ùÓÚÕâÑùµÄÒ»¸ö˼Ï룺

¶¼ÖªµÀ£¬ÔÚÃæÏò¡°¶ÔÏó¡±Éè¼ÆµÄ¹ý³ÌÖУ¬Ã¿¸öÀà¾ÍºÃ±ÈÒ»¸öÈË£¬ÊµÀý»¯Ò»¸öÀà¾ÍºÃ±ÈÉú³ÉÁËÒ»¸öÈË£¬Õâ¸öÈË¿ÉÒÔÔÚÒ»³öÉú¾Í¾ß±¸ºÜ¶àµÄÄÜÁ¦(ÌìÉú±üÒì)£¬ÈçÒì³£´¦Àí£¬ÈÕÖ¾¸ú×Ù£¬»º´æ£¬Í¨ÓõÄÑéÖ¤»úÖÆµÈµÈ£»Ò²¿ÉÒÔÒ»³öÉúʲô¶¼²»»á(»òÕßÖ»»á×ö×î»ù±¾µÄ¼¸¼þÊÂÇé)¡£Ö®Ç°µÄÒµÎñÀàʵÀý»¯Ö®ºó¾ÍÉú³ÉÒ»¸ö·Ç³£ÆÕͨµÄÈË¡£Ã¿¸öÀà¶¼µÃÖØÐ´ºÜ¶àµÄ»ù´¡´úÂ룬˵µ½Í¨ÓÃÄǾÍÖ»ÊÇcopy´úÂë¡£Èç¹ûÏëҪʹµÃÐÂÉú³ÉµÄÀàºÜÇ¿´ó£¬¾ß±¸ºÜ¶à¹¦ÄÜ£¬ÔÚÉè¼ÆµÄʱºò¿ÉÒÔÈÃÕâЩÀà¼Ì³ÐÒ»¸ö¹¦ÄܱȽÏÇ¿´óµÄ»ùÀà¡£µ±È»¼Ì³ÐÖ»ÊÇʵÏÖ·½Ê½µÄÒ»ÖÖ¡£

ÏÖÔÚRichardÒѾ­±»·Öµ½ÁËÁíÍâµÄÒ»¸öÏîÄ¿×é(Ò²ÊDZ¾ÏµÁÐÎÄÕÂÒª½²ÊöµÄÒ»¸öÏîÄ¿£¬¾Í³ÆÎªÏîÄ¿½ø¶È¹ÜÀíϵͳ¡ªProject Process Management(PPM))£¬¶øÇÒµ£ÈÎÁ˼ܹ¹µÄÉè¼ÆºÍ¿ª·¢(֮ǰµÄ¼Ü¹¹Éè¼ÆRichardûÓз¢ÑÔȨ)¡£ÓÐÁËǰ³µÖ®¼ø£¬ÔÚÐÂÏîÄ¿¿ª·¢Ö®Ç°µÄ¼¸¸öÔ£¬RicahrdÊ×ÏȾͿªÊ¼ÁËͨÓüܹ¹µÄÉè¼Æ£¬Ä¿µÄÓÐÁ½¸ö£º

1.½â¾ö֮ǰÏîÄ¿µÄÎÊÌ⣺²»Áé»î£¬²»Í¨Óã¬Ã¿´Î¶¼×öÖØ¸´ÐÔµÄÊÂÇéµÈ¡£

2.½áºÏ×Ô¼ºµÄ¿¼ÂÇ£¬¿ª·¢Ò»¸öFramework£¬Ê¹µÃ¿ª·¢¸ü¼ÓµÄ¿ìËÙ£¬Áé»î£¬Ç¿´ó¡£

ÆäʵÔÚÏîÄ¿ÕæÕý¿ªÊ¼ÁËÖ®ºó£¬²»¿ÉÄܸøÄ㼸¸öÔµÄʱ¼äÈ¥Éè¼Æ¼Ü¹¹µÄ¡£ÆäʵÔÚAIM³öÏÖÎÊÌâÖ®ºó£¬Richard¾ÍÒѾ­ÔÚ¹¹Ë¼Èç¹û¿ª·¢Ò»¸öͨÓõÄFrameworkÁË£¨¡±Í¨Óá±--²»±íʾ¾ÍÊǵ½´¦¿ÉÓã¬ÒòΪ¹«Ë¾µÄÒ»Ö±ÊÇ¿ª·¢Ä³Ò»ÁìÓòÈí¼þµÄ£¬±ÈÈçÏÖÔڵĹ«Ë¾¾ÍÉ󤿪·¢ÆóÒµ¹ÜÀíµÄһЩÈí¼þ£¬ËùÒÔ¿ª·¢³öÒ»¸ö»ùÓÚÁìÓòÄ£Ð͵ļܹ¹ºÍ¿ò¼Ü»¹ÊÇÓпÉÄܵģ©¡£RichardÒ²ÏëÍì¾ÈAIM£¬ÓÉÓÚÖî¶àÔ­Òò£¬Ïë·¨ÖÕ¾¿Ö»ÊdzÉÁËÏë·¨¡£

ÔÚ´ÓAIMÏîÄ¿³öÀ´Ö®ºó£¬RichardÓÖ¿ªÊ¼ÁËÁíÍâµÄÒ»¸öÏîÄ¿µÄ¿ª·¢£¬Ãû³ÆÎÒÃÇÔÝʱ¾ÍÐéÄâµÄ³ÆÎªEMS(Employee Management System),EMSÏîÄ¿²»ÊǺܴ󣬹«Ë¾½â¾öÈÃRichardÒ»¸öÈË¿ª·¢Õâ¸öÏîÄ¿¡£Õâ¸öÏîÄ¿¸øÁËRichardºÜ¶àµÄʱ¼äÀ´¿¼ÂǼܹ¹Éè¼ÆºÍFrameworkÉè¼ÆµÄʱ¼ä£¬ÒòΪEMSÏîÄ¿²»ÊǺܸ´ÔÓ£¬¶øÇÒ¼¼ÊõºÍ½ø¶È¶¼ÔÚÕÆ¿ØÖ®ÖУ¬ÔÚÕý³£Éϰàʱ¼ä¾Í¿ÉÒÔµ½Ê±ºò¶¨ÆÚ½»¸¶¡£ËùÒÔÿÌìϰàÖ®ºó£¬Richard¿ªÊ¼¼Ó°àÈ¥¹¹Ë¼FrameworkµÄÉè¼Æ£¬¿ª·¢µÄʱ¼äÔ½³¤£¬¼¼Êõ¾ÍÓ¦¸Ã³ÁµíµÄÔ½¶à£¬ÈçÒÔͨÓÃÀà¿â£¬×é¼þµÄ·½Ê½»òÕß½â¾öÎÊÌâ·½°¸µÄÎĵµµÈ³öÏÖ¡£Ö»ÓÐÕâÑù£¬Ï´εĿª·¢²Å¸ü¼ÓµÄ¿ìËÙ¡£

3¸öÔÂÏÂÀ´£¬EMSÏîÄ¿Íê³ÉÁË¡£¶øÇÒRichardÉè¼ÆµÄFrameworkÒ²ÓÐÁ˳ûÐΡ£×¼È·µÄ˵£¬»¹Ö»ÄܳÆÎª »ù´¡¼Ü¹¹»ù±¾Íê³É¡£EMSûÓвÉÓÃÕâ¸öFrameworkÀ´¿ª·¢£¬ÒòΪFrameworkµÄÉè¼ÆºÍʵÏÖÓÚEMSÊÇͬ²½½øÐеġ£

RichardÐÄÀïÊÇÕâÑùÈÏΪµÄ£ºÉè¼ÆÍ¨Óõļܹ¹£¬È»ºóÔÚÏîÄ¿Öв»¶ÏµÄ´¸Á¶£¬¸üУ¬²úÉú³öͨÓõĴúÂ룬ȻºóÑÝ»¯ÎªFramework¡£Ö»ÓÐÉè¼Æ³öÁË×Ô¼ºµÄFramework£¬ÒÔºóµÄ¿ª·¢²ÅÓпÉÄܽøÈë"¹âËÙ¿ª·¢"¡£

ÔÚÕâ¸öÏîÄ¿¿ªÊ¼Ö®³õ£¬Richard¾ÍºÍÆäËû¼¸¸ö×éÔ±ÌÖÂÛÁËÈçºÎʵÏÖ£¬Í¬Ê±Ò²ÍƳöÁË×Ô¼º¿ª·¢µÄ³É¹û¡£ÉÌÁ¿Ö®ºó£¬¾ö¶¨²ÉÓÃRichardµÄÉè¼Æ¡£

RichardÔÚÉè¼Æ¼Ü¹¹µÄʱºò£¬Ò²²Î¿¼ÁËÏÖÔÚÁ÷ÐеÄÒ»¸öFramework,ÈçSpring.NET ,CSLA.NET, Nhibernate£¬Ö÷ÒªÎüÊÕËüÃǵÄһЩ˼Ï룬ͬʱҲ·ÖÎöÁËÕâЩFramework¶Ô×Ô¼ºÏîÄ¿µÄÀû±×¡£¶øÇÒÈÏΪ£ºÃ»Óоø¶ÔÍòÄܵļ¼Êõ£¬Ò»¸ö¼Ü¹¹µÄʵÏÖÐèÒªÔںܶàµÄÒòËØÖ®¼äȨºâ£¬¼¼Êõ²»ÊÇÓÃÀ´showµÄ£¬¶øÊÇÓÃÀ´½â¾öÎÊÌ⣬Õâ¾ÍÊǼ¼ÊõµÄ¼ÛÖµ¡£

1.Êý¾Ý²ã²ÝͼµÄÌá³ö

Richard¿ªÊ¼×ÅÊÖÉè¼Æ£¬Ò»¿ªÊ¼ËûûÓоÍÁ¢¿ÌÔÚ×Ô¼ºµÄ¼ÆËã»ú¿ªÊ¼ÇôúÂë¡£¶øÇÒ²ÉÓñʣ«Ö½¿ªÊ¼¹¹Ë¼¡£

ÒòΪËûÈÏΪ£ºÐ´³ÌÐò²»ÊÇʲôʱºò¶¼µÃÉÏ»ú£¬ÄÔ×ÓÀïÃæÏëʲôµÄ²ÅÊÇ×îÖØÒªµÄ£¬ÍùÍùºÜ¶àʱºò£¬ÔÚÉè¼Æ³ÌÐòʱ£¬Ê×ÏÈÔÚÍ·ÄÔÖоÍÒѾ­°ÑÕû¸ö¹¦ÄÜÒѾ­ÊµÏÖÁË£¬ÉõÖÁ´úÂëµÄÏêϸ±àд¶¼ÒѾ­ÔÚÍ·ÄÔÖÐ×ßÁËÒ»±é£¬²¢ÇÒÔÚÍ·ÄÔÖС±ÔËÐУ¬µ÷ÊÔ¡±ÁË¡£

¿ªÊ¼Éè¼ÆÁË£¬ÒòΪÕâ´ÎRichardÏëÒªÌá³öÒ»¸ö±È½ÏºÃµÄ¼Ü¹¹£¬Ò»¸ö±È½ÏÇ¿´óµÄÆóÒµ¼¶µÄ¼Ü¹¹£¬ËùÒԲο´³É¹¦µÄһЩ°¸ÀýÊǺÜÓбØÒª£¬RichardÒ²¾ÍÏëµ½ÁË΢Èíbest practiceµÄÄÇÐ©ÍÆ¼öµÄ¼Ü¹¹×éÖ¯·½Ê½ºÍ½¨Ò飨´ó¼Ò¶Ôbest practice²»ÊìϤҲҪ½ô£¬²»»áÓ°ÏìÔĶÁ£©¡£

Ö®ºó£¬RichardµÄµÚÒ»¸ö²Ýͼ¾Í³öÀ´ÁË£º

Ò»¸ö¼Ü¹¹×éÖ¯·½Ê½µÄÌá³ö£¬²»ÊÇËæËæ±ã±ã¾ÍÌá³öµÄ£¬Ðµļܹ¹µÄÉè¼ÆºÍÌá³öÊ×ÏȱØÐëÒªÃ÷°×ÄãÒª½â¾öÄÄЩÎÊÌ⣬¶øÇÒÒ²²»Òª¡±¹ý¶ÈÉè¼Æ¡±¡£(Õâ¸ö¹ý³ÌºÜÄÑ£¬ºÜ¶àʱºòÐèҪȨºâ£¬ËùÒÔ×÷Ϊ¼Ü¹¹µÄÉè¼ÆÕߣ¬È¨ºâµÄ˼ÏëºÜÖØÒª£ºÔÚʱ¼ä£¬×ÊÔ´£¬×ʽðµÈ¶¼Òª¿¼ÂÇ)¡£¿ÉÄÜÔÚÆð³õ»á²Î¿´Ò»Ð©±ðµÄÉè¼Æ¼Ü¹¹£¬ÉõÖÁÊÇÄ£·ÂËüÃÇ£¬µ«ÊÇËæ×Å˼¿¼µÄÉîÈ룬ÄÇЩ±íÏóµÄ¶«Î÷¾Í»áÖ𽥵ı»Å׳ý¡£

ͬʱҲ¿ªÊ¼Éè¼ÆµÄʱºò£¬Ã»ÓÐ˵һ¶¨ÒªÁ¢¿Ì¾ÍÒªÉè¼Æ³öÒ»¸öºÜÇ¿´óµÄ¶«Î÷³öÀ´£¬¶Ô¼Ü¹¹Éè¼ÆµÄÄÜÁ¦Ò²ÊÇÔÚÂýÂýµÄÑÝ»¯ºÍ˼¿¼¹ý³ÌÖÐÌáÉýµÄ¡£

2. ¶ÔÊý¾Ý·ÃÎʲãµÄ˼¿¼

ÔÚ½âÊÍΪʲô¼Ü¹¹ÒªÏñÉÏÃæÄǸ±Í¼½øÐÐÉè¼ÆÖ®Ç°£¬ÎÒÃÇÊ×ÏÈÀ´ÌÖÂÛһЩ֮ǰÏîÄ¿ÎÊÌ⣺

¶ÔÓÚÊý¾Ý·ÃÎʲã(DAL)µÄÎÊÌ⣺

1. DALºÜÒÀÀµLinqÉú³ÉµÄʵÌå¡£¿ÉÒÔ˵ÔÚ֮ǰµÄÏîÄ¿ÖУ¬ÔÚÊý¾Ý·ÃÎʲãÄܹ»Ê¹Óõļ¼Êõ¾ÍÒѾ­¡±¶¤ËÀ¡±ÔÚÁËLinqÉÏ¡£ÕâÀï²»ÊÇ˵Linq²»ºÃ£¬¶øÇÒÇ¿µ÷ÔÚDALµÄ·ÃÎʼ¼ÊõµÄÑ¡ÔñµÄÓàµØÒѾ­Ã»ÓÐÁË£¬²»Áé»î¡£

a) Ôڼܹ¹µÄÉè¼Æ¹ý³ÌÖУ¬¾ÍÐèÒª¿¼Âǵ½ÒÔºó¼¼ÊõµÄת±äºÍ¸ü»»£¬¿ÉÄÜÔÚÏîÄ¿AÖвÉÓÃLinq to sql£¬µ«ÊÇÔÚÏîÄ¿BÖоͲÉÓÃEntity Framework¡£ÒòΪÎÒÃǵÄÄ¿µÄ¾ÍÊÇÒª¿ª·¢Ò»¸ö±È½ÏÁé»îµÄͨÓüܹ¹£¬Äܹ»Ö§³Ö²»Í¬¾ÍÊý¾Ý·ÃÎʼ¼Êõ¡£¿ÉÄÜÒÔºóµÄÏîÄ¿¶¼Ö»ÊÇÓÃÒ»ÖÖ·ÃÎʼ¼Êõ£¬µ«ÊÇ×îΪ¼Ü¹¹µÄÉè¼ÆÕߣ¬ÌرðÊÇÏ£Íû´Ó¼Ü¹¹×îºóÄܹ»ÑÝ»¯µ½Framework, ÄǾÍҪΪ¸ü»»¼¼ÊõÔ¤Áô½Ó¿Ú¡£

2. ÔÚDALÖÐûÓкܶàµÄÒì³£´¦ÀíµÈµ×²ã»úÖÆ¡£

a) ÔÚÏîÄ¿Éè¼ÆµÄ¹ý³ÌÖУ¬ÓÐЩµ×²ãµÄ»úÖÆÊǼ¸ºõÿһ¸öÂß¼­¶¼ÒªÓõ½µÄ£ºÒì³£´¦Àí£¬ÈÕÖ¾¸ú×Ù£¬»º´æ»úÖÆ£¬ÊÂÎñ»úÖÆ£¬°²È«ÑéÖ¤»úÖÆ¡£µ±Ê±ÔÚ֮ǰµÄDALÖÐÊÇûÓеġ£¿ÉÄÜÏÖÔÚÄãÈÏΪÓÐЩ»úÖÆ²»ÊÇÐèÒªµÄ£¬»òÕß²»Ã÷°×ΪʲôÐèÒª¡£

ÒòΪһ¸öÇ¿´óµÄÈí¼þ£¬²»ÄÜËæËæ±ã±ã¾ÍÒòΪijЩÒì³£»òÕß´íÎó¾Í±ÀÀ£ÁË£¬Ò²²»¿ÉÄܾÍÊÇÒ»´ó¶Ñ´úÂëµÄ¶ÑÆö¡£ÉÏÃæËùÌáµ½µÄÓÐЩ»úÖÆ£ºÈçÒì³££¬ÈÕÖ¾£¬ËüÃǵļÛÖµºÜ¶àʱºòÔÚÈí¼þά»¤µÄʱºòÌåÑé³öÀ´¡£¸ù¾ÝÈÕÖ¾¼Ç¼£¬¿ÉÒԲ鴦Èí¼þÄÄÀï³öÁËÎÊÌ⣬ÈçÊÇÊý¾Ý¿â¶ÏÁË£¬»¹ÊÇÄĸö²Ù×÷Á÷³Ìµ¼ÖÂÁËÎÊÌâ¡£ ¶øÓÐЩ»úÖÆÊÇÔÚÔËÐÐʱÌåÏÖ¼ÛÖµ£¬È绺´æ£¬ÑéÖ¤£¬ÊÂÎñ¡£

µ«ÊÇÔÚʹÓÃÕâЩµ×²ã»úÖÆµÄʱºòҲҪȨºâ£¬×ۺϵĿ¼ÂÇ£¬È绺´æ»úÖÆ£¬¾ÍµÃÃ÷°×ÄÇЩÊý¾ÝÒª»º´æ£¬»º´æÔÚÄÄÀ»º´æÊý¾ÝʱºòÒª¼ÓÃÜ£¬»º´æ¶à³¤Ê±¼ä£¬ÈçºÎˢйýÆÚÁ˵ÄÊý¾Ý¡£µÈµÈ£¬ºÜ¶à¶«Î÷Òª¿¼ÂÇ¡£

3. Êý¾ÝÀ´Ô´½ö½öÖ»ÊÇ¿¼ÂÇÁËÊý¾Ý¿â¡£ÆäʵÕâ¸öÎÊÌâ²»ÊÇ֮ǰµÄÏîÄ¿µÄÒ»¸öÎÊÌ⣬µ«ÊÇÕâÀïÓбØÒªÌá³ö¡£

a) Ò»°ãÔÚÎÒÃÇ¿ª·¢ÏîÄ¿µÄʱºò£¬Êý¾ÝµÄÀ´Ô´ºÜ¶àʱºò¶¼ÊÇÊý¾Ý¿â£¬ÎÒÃÇÖ±½Ó²Ù×÷Êý¾Ý¿â¾ÍÐÐÁË£¬µ«ÊÇ»¹µÃ¿¼ÂÇÒ»¸öÎÊÌ⣺Èç¹ûÎÒÃǵÄÏîĿûÓÐ×Ô¼ºµÄÊý¾Ý¿â£¬ÎÒÃǵÄÊý¾ÝÀ´Ô´ÊÇÀ´×ÔÆäËûµÄ¹«Ë¾»òÕß·þÎñ½Ó¿Ú£¬Ôõô°ì£¿×÷Ϊ¼Ü¹¹µÄÉè¼ÆÕߣ¬ÊÇÐèÒª¿¼ÂÇÕâЩµÄ¡£

¿ÉÄÜÔÚÏîÄ¿Çö¨ÄÇÌì¾ÍÒѾ­Çå³þÊÇ×Ô¼ºÉè¼ÆÊý¾Ý¿â»¹ÊÇ´ÓÆäËûµØ·½»ñÈ¡Êý¾Ý¡£µ«ÊÇÒ»¸öͨÓõÄÒ»¸ö¼Ü¹¹µÄ¾ÍÒªÄܹ»ÎªÆäËûµÄÊý¾ÝÔ´Ô¤Áô½Ó¿Ú¡£

ÕâÀ¿ÉÄܾÍÓÐÁËÒ»µã¡±¹ý¶ÈÉè¼Æ¡±µÄζµÀÁË£¬Æð³õÔÚÏîÄ¿AÖÐËùʹÓõļܹ¹Ã»Óп¼ÂÇÆäËûÊý¾ÝÔ´µÄÎÊÌ⣬µ«ÊÇÈç¹ûÔÚÏîÄ¿BÖгöÏÖÁË£¬Ôõô°ì£¿ÄÇô¼Ü¹¹¾ÍÒªÑÝ»¯£¬¸Ä½øÀ´ÊÊÓ¦ÕâÖÖÇé¿ö¡£

֮ǰҲÌá¹ý£¬Ã»ÓбØÒªÒ»ÉÏÀ´¾ÍÉè¼ÆÇ¿´óµÄ¾Í¼Ü¹¹£¬¶øÊÇÔÚÏîÄ¿ÖиĽø£¬ÑÝ»¯¡£¿ªÊ¼Ê±ºòûÓп¼Âǵ½£¬ÒÔºóÂýÂýµÄ¼ÓÂï¡£(±È½ÏµÄ¾À½á)¡£

ÉÏÃæÖ»Êǽô½ôµÄ´ÓÊý¾Ý²ãDALµÄ½Ç¶È½øÐÐÁË˼¿¼£¬DAL×îÖÕ»¹ÊÇΪҵÎñ²ãBLLÌṩÊý¾ÝµÄ£¬ËùÒԾͿ¼ÂÇDALÒÔºÎÖÖ·½Ê½À´±»BLLµ÷Ó㬼øÓÚ֮ǰµÄһЩ¿¼ÂÇ£¬¿ÉÒԵóöÒ»µã£º²»ÈÃBLLÖ±µ½DALµÄʵÏÖϸ½Ú£¬ËùÒÔ½Ó¿ÚËÆºõÊǸö²»´íµÄ½â¾ö°ì·¨£¬ProviderµÄÄ£Ê½Ò²ËÆºõ¿ÉÒÔÅÅÉÏÓó¡¡£

ÓÚÊÇ,Richard¾Í¾ö¶¨ÔÚDALºÍBLL֮ǰ¼ÓÉϽӿڲãÀ´½âñî¡£

3. µÚ¶þ¸öÊý¾Ý²ã²ÝͼµÄÌá³ö

Õâ¸öͼºÍ֮ǰµÄµÚÒ»¸öͼ»ù±¾ÉÏÊÇÒ»ÑùµÄ£¬Ö»ÊÇ×öÁËÒ»Ð޸쬶øÇÒ¼ÓÉÏÁË֮ǰ̸ÂÛÖÐÉæ¼°µÄһЩÎÊÌâ¡£

ÒòÎªËæ×Å˼¿¼µÄÉîÈ룬Ö𽥵ķ¢¾õ£ºÊý¾ÝÔ´µÄÀ´Ô´¿ÉÒԺܶࡪÊý¾Ý¿â£¬ÆÕͨÎı¾£¬XMLµÈµÈ¡£²»Í¬µÄÊý¾ÝÔ´Ìṩ²»Í¬µÄProvider£¬Æäʵ´ÓÆäËûµÄ·þÎñ½Ó¿Ú»ñÈ¡Êý¾ÝÒ²ÊÇÒ»ÖÖÀ´Ô´£¬ÉÏÃæµÄͼ֮ËùÒÔµ¥¶ÀµÄ°ÑService Agent·Ö³ö£¬Ö÷ÒªÊÇÒòΪ±È½ÏÌØÊâ¡£

¶øÇÒͼÖеÄÄÇЩ»ù±¾¹¦ÄÜ£ºLog, ExceptionµÈ£¬Êǵ½´¦¶¼Óõ½µÄ¡£

´ËʱRichardÒ²ÔÚÍ·ÄÔÖÐÉÁÏÖÁËһЩҪ´¦ÀíµÄ£¬¿ÉÒÔ³öÏÖµÄÒì³££º

1. Data Source is not exits:Êý¾ÝÔ´²»´æÔÚ£¬ÒòΪÕâ¸öÎÊÌâºÜ³£¼û£¬±ÈÈçÔÚÏîÄ¿ÔËÐйý³ÌÖУ¬Êý¾Ý¿â¶ÏÁË£¬»òÕßÔ¶³ÌµÄ·þÎñÎÞ·¨·ÃÎÊ£¬µÈµÈ»ù±¾¶¼ÊôÓÚÕâ¸öÎÊÌâµÄ¡£ËùÒÔÕâ¸öÒì³£¿Ï¶¨ÊÇÒª´¦ÀíµÄ¡£

2. Time out:³¬Ê±¡£Õâ¸öÒì³£ºÜ³£¼û£¬»ñÈ¡µÄÊý¾Ý¹ý´ó£¬»òÕßÔ¶³ÌÊý¾ÝÔ´Á¬½Ó³¬Ê±£¬µÈ£¬¶¼¿ÉÒÔÒý·¢Ò»Ð©ÎÊÌâ¡£

3. Èç¹ûÊý¾ÝÔ´ÊÇÆäËû·þÎñ½Ó¿ÚÌṩÊý¾Ý£¬ÄÇôÔÚÊý¾Ý»ñȡʱ£¬¿ÉÄÜҪת»»Êý¾Ý¸ñʽ£¬Èç¹û¸ñʽ³ö´í£¬¡£»òÕß·¢Ë͵ÄÊý¾Ý²»·ûºÏһЩ¹æÔò£¬Õâ¸öÒì³£Ò»¶¨Òª´¦Àí£¬ÒòΪÕâЩÊý¾Ý¿ÉÄÜÉæ¼°µ½°²È«µÄÎÊÌâÁË£ºÊÇÊý¾ÝÕæµÄ²»ÕýÈ·£¬»¹ÊDZ»´Û¸ÄÁË¡£

³ÌÐò¾Í±ØÐë¶ÔÕâЩÒì³£½øÐд¦Àí£ºÊǰÑÔ­ÉúµÄÒì³£Å׳ö£¬È»ºóÓÐÒµÎñ²ã¾ö¶¨Èç¹û´¦Àí£»»¹ÊǾö¶¨°ÑÒì³£°ü×°³ÆÎªÁíÍâµÄÒ»¸öÒì³££¬ÔÙÅ׳ö£»»¹ÊÇ×îºó¸É´àÔÙDAL¾ÍÖ´ÐÐ×Ô¼º´¦Àí£¬È»ºó¸øÒµÎñ²ãÒ»¸öÓѺõÄÌáʾ£¬µÈµÈ¡£Èç¹ûÊý¾ÝÔ´ÊÇÔ¶³ÌµÄ·þÎñ£¬ÄÇôÈç¹û·þÎñ¶ÏÁË£¬ÔÚÒì³£¹ý³ÌÖУ¬²ÉÓÃʲôÑùµÄ²ßÂÔ£º¼òµ¥µÄ´¦Àí£¬ÈçÅ׳öÒì³££¬¼Ç¼ÈÕÖ¾£¬»¹ÊÇ×öһЩ»Ö¸´ÐԵIJÙ×÷£¬Èç³¢ÊÔÖØÐÂÁ¬½Ó£¬µÈ¡£

֮ǰµÚÒ»ÕÅͼÖУ¬ÔÚDALÉ϶¨ÒåÒ»¸ö½Ó¿Ú£¬ÓÃÀ´½Óñµ«ÊÇÔÚµÚ¶þÕÅͼÓÐ×öÁËһЩÐ޸ģ­£­°ÑDAL×öΪ·þÎñÌṩ³öÈ¥¡£Ö®ËùÒÔ×öÁËÕâ¸öÐ޸ģ¬ÒòΪÔÚ¿ªÊ¼Ë¼¿¼µÄʱºò£¬Ö»ÊÇÈÏΪµ×²ãÉè¼ÆµÄDALÖ»ÊǸøBLLʹÓ᣿ÉÒÔ·¢¾õµ½Ò»µã£ºÔÚDALÖУ¬Êý¾Ý¿ÉÒÔ´ÓÔ¶³ÌµÄ·þÎñÖлñÈ¡£¬ÄÇô¿ÉÄÜÎÒÃÇÕâÀïµÄDALÒ²¿ÉÒÔ×÷Ϊ·þÎñ¸øÆäËûµÄÈËÉè¼ÆµÄDALʹÓã¬Ò²¾ÍÊÇ˵£¬ÎÒÃǵÄÕâÀïµÄDAL³ÉÁËÔ¶³Ì·þÎñµÄÊý¾ÝÔ´¡£ËùÒÔ×öÁËÉÏÃæµÄÐ޸ġ£µ«ÊÇÕâ¸ö˼¿¼µ½»¹»á¸Ä½ø£¬ÒòΪÕâÀïÃæÎÊÌâ(¶ÁÕßÅóÓÑ¿ÉÒÔÏÈ×Ô¼ºË¼¿¼ÊÇʲôÎÊÌâ)¡£

1. ²ÝͼµÄһЩÎÊÌâÔÚÄÄÀï

µ±Richard°Ñ²Ýͼ»­³öÀ´ÁËÖ®ºó£¬Ïëµ½ÁËÁíÍâµÄÒ»¸öÎÊÌ⣺ÔÚDALÊý¾Ý²ãÖ®¼äÌṩµÄÄǸö½Ó¿Ú²ãµ½µ×Ó¦²»Ó¦¸ÃÊÇServices Interface¡£ÆäʵÕâ¸ö½Ó¿Ú²ãÊÇÆÕͨµÄInterface²ã»¹ÊÇServices Interface£¬RichardÒ²Äò»¶¨Ö÷ÒâµÄ£¬ÒòΪµ±³õÖ®ËùÒÔÒª°ÑÕâ¸ö½Ó¿Ú²ã¸ÄΪServices Interface£¬ÊÇÒòΪÔÚÊý¾ÝÔ´ÌṩÕß(Service Agent)ÄÇ¿é¸øÁËËû¡°Áé¸Ð¡±¡ª¡ªÊý¾ÝÔ´¿ÉÒÔʹÓÃÔ¶³ÌµÄServices¡£»ùÓÚÕâ¸ö˼Ï룬ËùÒÔRichardÒ²¿¼Âǵ½ÁË£ºÒ²Ðí£¬ÏÖÔÚÉè¼ÆµÄÕâ¸öDAL£¬ÄÄÒ»Ìì»á×÷Ϊ·þÎñ¸øÆäËûµÄ³ÌÐòÌṩÊý¾ÝÒ²²»Ëµ¶¨¡£

ËäÈ»£¬Õâ¸öÎÊÌâ¶ÔÏÖÔÚÀ´Ëµ²»ÊÇÄÇôµÄÖØÒª£¬µ«ÊÇÔÚRichardµÄÐÄÀÎÞ·¨Ëµ·þ×Ô¼ºµ½µ×ʹÓÃÄÄÒ»ÖÖ½Ó¿Ú²ã(Ò²ÐíÊÇRichardÕâ¸öÈ˵ÄÐÔ¸ñÓйذɣ¬Ò»¶¨Òª¸ø¸öÀíÓÉ˵·þ×Ô¼º£¬µ«ÊÇÕâ¸öÀíÓÉÓÖ²»ÄÜËæËæ±ã±ãµÄºýŪ×Ô¼º)¡£

RichardÏëµ½ÁË֮ǰÔÚ¿ª·¢ÏîÄ¿µÄʱºò£¬Ò²È·ÊµÔø¾­°ÑÆäËû¹«Ë¾ÌṩµÄ·þÎñ×÷ΪÊý¾ÝÔ´µÄÇé¿ö¡£µ±Ê±µÄµ÷ÓÃËäȻֻÊǽøÐвéѯ£¬Ôö¼Ó£¬É¾³ý£¬Ð޸ĵļòµ¥²Ù×÷£¬µ«ÊǺܶàµÄÁ÷³ÌÒѾ­ÔÚ·þÎñÌṩÕßÄDZ߶¨ÒåºÃÁË£¬ÀýÈçÔÚ·¢ËÍÒ»Åú»õÎïµÄʱºò£¬RichardÖ»Êǵ÷ÓÃÁË·þÎñ½Ó¿ÚµÄÒ»¸öCreateProduct(Product product)·½·¨£¬µ«ÊÇÔÚ·þÎñÆ÷ÄǶËÈ´×öÁ˺ܶàµÄÊÂÇ飺¼ÆËã¿â´æ£¬Éú³É¶©µ¥£¬Ñ¡Ôñ»õÎ﹩ӦÉ̵ȵȡ£ÕâÑù˵À´£¬Èç¹ûÏÖÔÚRichard°ÑDALÉÏÃæ¼ÓÉÏÒ»¸öServices Interface²ã£¬ÄÇôDAL»òÕ߯äËûµÄ²ã¾Í±ØÐëÌṩºÜ¶àµÄÂß¼­²Ù×÷£¬»òÕß²»Ò»¶¨ÊÇÂß¼­²Ù×÷£¬»¹¿ÉÒÔÊÇÊý¾Ý¸ñʽÑéÖ¤¡¢Éí·ÝÑéÖ¤¡£

Èç¹ûÕæµÄÕâÑùÉè¼Æ£¬ÄÇôÊý¾Ý²ãµÄ×öµÄÊÂÇé¾ÍºÜ¶àÁË£¬ÒªºÜ¶àµÄÂß¼­¡£¶øÕâЩÂß¼­ÔÚBLLÖнøÐвÅÊDZȽϺõÄÑ¡Ôñ£¬Ïëµ½ÕâÀRichardËÆºõ¿ªÊ¼Ã÷°×£º°ÑServices Interface²ã·ÅÔÚBLL²ãÖ®ÉÏ¡£ÕâÑù¾Í¿ÉÒÔ³ä·ÖµÄÀûÓÃBLLµÄÂß¼­ÑéÖ¤¹¦ÄÜ¡£ËùÒÔDALÖ®ÉϵĽӿڲ㣬»¹ÊǾö¶¨²ÉÓÃÆÕͨµÄ½Ó¿Ú¡£

2. ÖØÉó֮ǰÏîÄ¿ÖÐÊý¾Ý²ãµÄÎÊÌâ

RichardÔÚÊý¾Ý²ãDALÕâ¿é»¨ÁË´óÁ¿Ê±¼äÀ´Ë¼¿¼£¬ÆäʵÊÇÓÐÔ­ÒòµÄ¡£ÔÚ֮ǰµÄÏîÄ¿ÖУ¬Êý¾Ý²ãµÄÉè¼ÆÏԵúÜÓ·Ö×£¬¶øÇÒÔÚRichard¿´À´£¬ÕâЩ´úÂëÒѾ­¿ÉÒÔÓÃÒ»ÖֱȽÏͨÓõķ½Ê½À´Ð´£¬Ã»ÓбØÒªÐ´ÄÇô¸´ÔӵĴúÂë¡£

ÀýÈ磬ÔÚEmployeeDALÖÐÓÐÒÔÏµķ½·¨£º

public Employee GetEmployeeById(string employeeId);
public Emplpyee GetEmployeeByName(string employeName);
public string GetEmployeePositionById(string employeeId);
public int GetEmployeeCount();

ÕâÑùд£¬Ã»ÓÐ´í¡£µ«ÊÇÓÐÒ»µãÒýÆðÁËRichardµÄ˼¿¼£ºDALÀàÖУ¬ºÜ¶àµÄ·½·¨»ù±¾É϶¼ÊDzéѯµÄ·½·¨£¬¶øAdd, Update, DeleteÔںܶàµÄDALÀàÖÐÐÎʽ¶¼±È½ÏµÄͳһ£¬ÌرðÊÇÔÚʹÓÃÁËLinq, Entity FrameworkÖ®ºó£¬ËùÓеÄÊý¾ÝʵÌåÀàAdd£¬Update, Delete·½·¨¼¸ºõÊÇÒ»ÑùµÄ£¬ÈçÔÚLinqÖпÉÒÔʹÓÃDataContext.GetTable<T>().InsertOnSubmit(entity)·½·¨À´²åÈëÈκεÄÊý¾ÝʵÌåÀà¡£

µ«ÊǾÍÖ»ÓÐÕâЩ²»Í¬Ìõ¼þµÄ²éѯ·½·¨ºÜÄÑͳһ£¬¼¸ºõÊÇÿ¸ö²»Í¬µÄDAL¶¼ÒªÈ¥ÊµÏÖ×Ô¼ºµÄÒ»Ð©ÌØÓеIJéѯ·½·¨¡£µ«ÊÇRichardÈÏΪ°ÑÕâЩ·½·¨Í³Ò»ÊÇÓпÉÄܵģ¬ÉõÖÁÊÇ´ïµ½ÄÇÖÖ¡°ÒÔ²»±äÓ¦Íò±äµÄ¡±Ð§¹û²ÅºÃ£¬´ø×ÅÕâ¸öÏë·¨Richard¿ªÊ¼½øÐкܶàµÄ³¢ÊÔ¡£

3. ˼άµÄÒ»µãÍ»ÆÆ

Richard¼«Á¦µÄÔÚ×Ô¼ºµÄÄÔº£ËÑѰ½â¾öµÄ·½°¸£¬Ò²·­ÔÄ×Ô¼ºÖ®Ç°ÏÂÔØºÍÂò¹ýµÄÊé¼®£¬¿´¿´ÄÇЩÊÇ·ñÓë²éѯÊý¾ÝÓйأ¬Ö»Òª¿´µ½ÓС°²éѯ¡±Á½¸ö×ÖµÄÕ½ڣ¬Richard¾Í²»»á·Å¹ý¡£Ò²²Î¿´ÁË.NETµÄÒ»¸öÖªÃû¿ªÔ´Framework µÄÉè¼ÆË¼Ïë¡£

¸øÁËËûÌáʾµÄ¾ÍÊÇFowler<<ÆóÒµÓ¦Óüܹ¹Ä£Ê½>>Ò»Ê飬ÊéÖÐÌáµ½µÄ²éѯ¶ÔÏó(Query Object)£¬ Richard²Î¿´ÁËÖ®ºóµÚÒ»·´Ó¦¾ÍÊÇ£ºÈ·Êµ²»´í£¬µ«ÊÇÌ«³éÏóÁË£¬Ã»Óиø³öһЩʾÀý¡£

Æäʵ֮ǰRichardÔÚ¿´Õâ±¾ÊéµÄʱºò£¬ÈÏΪÊéµÄ¸ß¶ÈÌ«¸ßÁË£¬Richard¼¸´Î¹¥¶Á£¬¶¼ÊÇÉîÊÜ´ò»÷¡£ËùÒÔ£¬½á¹ûÊÇRichardºÜ¾´Î·Õâ±¾Ê飬µ«ÊÇ»¹ÊÇÏëÓг¯Ò»ÈÕÄܹ»ÄÃÏÂËü¡£ÏÖÔÚÊéÖоÍÓÐÁ˲éѯ¶ÔÏóµÄһЩ½â¾ö·½°¸ºÍʵÏÖ£¬RichardÓ²×ÅÉÏÁË¡£

RichardÈÏΪ£ººÜ¶àµÄÊÂÇé²»ÊǵÈÄãµÄËùÓÐÌõ¼þ¶¼¾ß±¸²ÅÈ¥×öµÄ£¬ÊÂÇéÍùÍùÊÇÔÚÄ㻹ûÓÐ×¼±¸ºÃµÄÇé¿öϾÍÒѾ­·¢ÉúÁË£¬·²Ê¶¼ÓÐÒ»¸ö¿ªÍ·£¬×ö¼Ü¹¹Ò²ÊÇÕâÑùµÄ£¬¿ªÊ¼Éè¼ÆÒ»¸ö¼Ü¹¹µÄʱºò£¬²¢ÇÒ²»ÊÇ˵Ã÷ÄãÒѾ­ÍêÈ«µÄ°ÑËùÓм¼Êõ¶¼ÕÆÎÕÁË£¬ÍêÃÀÁË£¬¿Ï¶¨ÊÇÓÐÒ»¸ö¿ªÊ¼³¢ÊԵĹý³Ì¡£¿ÉÄÜÔÚ¿ªÊ¼Éè¼ÆµÄʱºò£¬Â©¶´°Ù³ö£¬µ«ÊÇ˼άµÄÖÜÃÜÐÔÒ²ÊÇÕâÑùÂýÂýµÄ¶ÍÁ¶³öÀ´µÄ¡£

ƽʱÔÚ˼¿¼µÄʱºò£¬×Ô¼ºÕ¾ÔÚÒ»¸ö¸ßÒ»µãµÄ½Ç¶È¿´ÎÊÌâ(ÏÖÔÚÊÇ¿ª·¢ÈËÔ±£¬µ«ÊÇ¿ª·¢ÈËÔ±ÔÚÉè¼ÆºÍ¿ª·¢µÄʱºò¿ÉÒÔÕâÑùÏ룺Èç¹ûÎÒÊǼܹ¹µÄÉè¼ÆÕß,ÎÒ»áÔõô×ö£¿)£¬Ë¼Î¬µÄ¸ß¶ÈÉÏÈ¥ÁË£¬»ú»áµ½À´µÄʱºòÒ²¾Í´ÓÈÝÁË¡£

Richard¿ªÊ¼ÖØÐÂÀí½â²éѯ¶ÔÏ󡣯äʵ²éѯ¶ÔÏó¾ÍÊÇÔÚÒ»¶¨³Ì¶ÈÉÏÒþ²ØÁËSQLÓï¾ä£¬²éѯ¶ÔÏóÊǽâÊÍÆ÷ģʽµÄÒ»ÖÖÓ¦ÓÃ,ʵ¼ÊÉϲéѯ¶ÔÏó×îºó»¹ÊÇÒª½âÊÍΪSQLÓï¾äµ½Êý¾Ý¿âÖÐÈ¥Ö´ÐеÄ(²»¹ÜÔÚÖмä¹ý³ÌÊÇÈçºÎÒ»²½²½µÄ²Ù×÷Õâ¸ö²éѯ¶ÔÏó£¬ÒòΪÊý¾Ý¿âÏÖÔÚÖ»ÊÇÈÏʶSQL£¬ËùÒÔ²éѯ¶ÔÏó×îÖÕ»¹ÊÇÒªÉú³ÉSQLÓï¾ä)¡£

²éѯ¶ÔÏóÖ÷ÒªÓÃ;¾ÍÊÇʹµÃ¿Í»§³ÌÐò¿ÉÒÔ¹¹Ôì¸÷ÖֵIJéѯ£¬¶øÇÒ²éѯÖÐʹÓõͼÊÇÓëÒµÎñÀàÓйصÄÊôÐÔ£¬Õâ¾ÍÒâζ×Å£¬¿Í»§³ÌÐò²»ÓÃÁ˽âÊý¾Ý¿âµÄ±íÃûºÍÁÐÃû¡£ÕâÖÖ×ö·¨×îÖ±½ÓµÄºÃ´¦¾ÍÊÇÒµÎñ¿ª·¢µÄÈËÔ±²»ÓÃÖªµÀÊý¾Ý¿âµÄ¹¹Ôì¡£

¶øÇÒÈç¹û²éѯ¶ÔÏóµÄÉè¼ÆÊÇÒÔ½Ó¿ÚµÄÐÎʽ³öÏÖ£¬ÄÇôÁé»îÐԾ͸ü¼ÓµÄ´ó¡£ÀýÈ磬Éè¼ÆÒ»¸öIQueryµÄ²éѯ¶ÔÏó½Ó¿Ú£¬È»ºó£¬Ôڼܹ¹ÖÐÓÐÁ½¸öʵÏÖÁËIQuery½Ó¿ÚµÄ²éѯ¶ÔÏó£¬ÈçLinqQuery, EFQuery,ÕâÁ½¸ö¾ßÌåµÄ²éѯ¶ÔÏó×îÖջᱻ·Ö±ð½âÊÍΪLinqºÍEntity Framework¿ÉÒÔʶ±ðµÄÓï¾ä£¬ÔÙͨ¹ýLinqºÍEntity FrameworkÈ¥Ö´ÐÐÊý¾Ý²Ù×÷¡£ÔÚ³ÌÐòÖоͿÉÒÔͨ¹ýÅäÖÃÀ´¾ö¶¨Ê¹ÓÃÄÄÖÖ²éѯ¶ÔÏóºÍʹÓÃÄÄÖÖÊý¾Ý·ÃÎʼ¼Êõ¡£

Ô½À´Ô½¶àµÄÏë·¨ÔÚRichardµÄÄÔº£ÖгöÏÖ£¬¶øËæÖ®´øÀ´µÄÎÊÌâÒ²¿ªÊ¼¶Ñ»ý¡£»ù±¾µÄ˼ÏëÊÇÓÐÁË£¬µ«ÊÇʵÏÖÆðÀ´ÄǾ͵ÃÊÇÁíÍâµÄÒ»»ØÊÂÁË¡£Ôõô°ÑÕâЩ˼Ð÷ÀíÇ壬Ôõô°ÑÕâЩÀíÇåµÄ˼Ð÷±äΪ´úÂëµÄʵÏÖ£¬Õâ¸ö³ÉΪÁ˰ÚÔÚRichardÃæÇ°×îÏÖʵµÄÄÑÌâ¡£

µ«ÊDz»¹ÜÔõÑù£¬ÒѾ­ÓÐÁËÒ»µãµãµÄ½øÕ¹£¬¼ÇµÃµ±³õ¿¼ÂǵÄʱºò»¹ÊÇÍ·ÄÔһƬ¿Õ°×£¬ÏÖÔÚµÄÏë·¨Ò»¸ö½Ó×ÅÒ»¸ö£¬ÔÚ˼άÉϽø²½ÁË¡£Richard¾õµÃÓеãÐÀο¡£

4. »ØÊ×ÔÙ¿´Êý¾Ý·ÃÎʲã

ÓÐÁËÉÏÃæµÄ˼¿¼£¬RichardÔÙ´ÎÉóÊÓÁËDAL£¬¿ªÊ¼·¢¾õ£ºDALÆäʵ¾ÍÖ»ÊÇÒ»¸ö´æÈ¡Êý¾ÝºÍ²Ù×÷Êý¾ÝµÄµØ·½£¬Õâ¾ÍÊÇDALµÄÖ÷Òª¹¦ÄÜ¡£ÏÖÔÚÊý¾Ý²ãµÄÉè¼Æ»ù±¾ÉÏÒѾ­¿ÉÒÔʵÏÖÁË£¬¶øÇÒ¿ÉÒÔ×öµ½¡°ÒÔ²»±äÓ¦Íò±ä¡±£¬²»¹ÜBLLÖжÔÊý¾Ý½øÐÐʲôÑùµÄ²Ù×÷£¬ÔÚDAL²ã¶¼¿ÉÒÔÓÃÄǸöËÄÖÖÔö£¬É¾£¬²é£¬¸ÄµÄ·½·¨¸ã¶¨¡£

1. Éè¼ÆDALµÄ»ù±¾²Ù×÷

RichardÈÏΪ£ºÔÚÉè¼ÆÒ»¸ö¼Ü¹¹»òÕßFrameworkµÄʱºò£¬Óм¸µãºÜÖØÒª£º

a. ×ÜÌå°ÑÎÕµÄÄÜÁ¦¡£

b. ³éÏóµÄÄÜÁ¦¡£

c. ·ÖÎöµÄÄÜÁ¦

Ê×ÏÈ£¬´Ó×ÜÌåÉÏÀ´¿´£¬RichardÈÏΪDALÖÐ×î»ù±¾£¬¶øÇÒ×îÈÝÒ×Ïëµ½µÄ·½·¨¾ÍÊÇCRUD(Create, Read, Update, Delete)Ëĸö²Ù×÷¡£

ÓÚÊÇRichardÔÚ²Ýֽд³öÁË»ù±¾²Ù×÷µÄÃû³Æ£º

AddSingleDataEntity;

AddDataEntityList;

 

UpdateSingleDataEntity;

UpdateDataEntityList;

 

DeleteSingleDataEntity;

DeleteDataEntityList;

 

GetSingleDataEntiry;

GetDataEntityList;

ÉÏÃæÁгöµÄ·½·¨Ãû×ֺܳ¤£¬ÆäʵRichardÔÚ˼¿¼ÕâЩ·½·¨µÄÃû³ÆµÄʱºòÒ²²Î¿¼ÁË.NETÉè¼Æ¹æ·¶ÖеÄһЩ½¨Ò飺·½·¨Ãû³ÆÒª¾ßÓС°×Ô½âÊÍÐÔ¡±£¬ÒòΪ¼Ü¹¹µÄÉè¼Æ×îºó»¹ÊǸø¿ª·¢ÈËÔ±Óõģ¬ËùÒÔ·½·¨µÄ¶¨ÒåÒªÒ»Ñ۾Ϳ´³öËüÊǸÉʲôµÄ£¬¶øÇҹ淶µÄÃüÃûÒ²¿ÉÒÔ´ó´óµÄ¼õÉÙά»¤µÄ³É±¾¡£(¿ÉÄÜÕâЩÃû×ÖµÄÃüÃûÓеã¶Ô¹æ·¶µÄ¡°Éú°áÓ²Ìס±£¬µ«ÊÇÖ®ºó»áÂýÂýµÄÖØ¹¹µÄ)

´Ó×ÜÌå³ö·¢£¬ÒѾ­¶¨Òå³öÁË»ù±¾µÄ²Ù×÷£¬ÄÇôÏÖÔھͿªÊ¼Ò»²½²½µÄ·ÖÎö£¬ÈçºÎʵÏÖÕâЩ·½·¨¡£

Richard¿ªÊ¼Ë¼¿¼µÚÒ»¸ö·½·¨µÄʵÏÖ£¬ÆäʵRichardÐÄÀïÒ²Çå³þ£ºÆäʵµ½µ×Äĸö·½·¨×÷ΪµÚÒ»¸öÀ´¿¼ÂÇÒ²ÐíºÜÖØÒª£¬µ«ÊÇÔÚÒ»Çж¼²»Çå³þ֮ǰÆðÂëÒªÄÃÒ»¸öÀ´ÈëÊÖ£¬¶øÇÒËæ×Å˼¿¼µÄÉîÈ룬ºÜ¶àµÄÎÊÌâ¶¼»áÂýÂýµÄ¸¡ÏÖ£¬µ½Ê±ºòÒ»ÇоͻáÃ÷ÎúÆðÀ´¡£

¶ÔÓÚAddSingleDataEntityÕâ¸ö·½·¨£¬Ê×ÏȾÍÒª¿¼ÂÇÕâ¸ö·½·¨µ½µ×Òª°ÑʲôÌí¼Óµ½Êý¾Ý¿âÖУ¬Ò²¾ÍÊÇ˵Ҫ¿¼ÂÇÕâ¸ö·½·¨µÄ²ÎÊý£¬¶øÇÒÕâ¸ö²ÎÊýÒª×ã¹»µÄ¡°¼æÈÝ¡±£¬ÒòΪ֮ǰRichard¾ÍÊÇÏëÉè¼Æ³öÒ»¸ö¡°ÒÔ²»±äÓ¦Íò±ä¡±µÄDAL¡£ÔÚ¿¼ÂÇÕâ¸ö²ÎÊýÎÊÌâ֮ǰ£¬Ê×ÏÈRichardºÜÇå³þ£ºÔÚ.NETÊý¾Ý·ÃÎʼ¼ÊõÖУ¬Linq£¬Entity FrameworkµÈORM¼¼ÊõÒѾ­¹ã·ºµÄÓ¦Óã¬ËùÒÔÔÚÉè¼ÆDALµÄʱºòÒª³ä·ÖµÄ¿¼Âǵ½ÏÖÓеÄһЩ¼¼Êõ(¾¡Á¿±ÜÃâÖØÐÂÔìÂÖ×Ó)¡£

¶øÇÒÔÚÊý¾ÝÊÇÈçºÎ±»´æÈëµ½Êý¾Ý¿âÖеÄÒÔ¼°Êý¾ÝÊÇÈçºÎ´ÓÊý¾Ý¿âÖÐÈ¡³öµÄ£¬Õâ¸ö¹¤×÷ÊÇÍêÈ«¿ÉÒÔ½»¸øÕâЩORMµÄ£¬×îºóµÄ½á¹û¾ÍÊÇ£ºÔÚDALÖÐÖ»ÊDzÙ×÷ÕâЩORMµÄÄÇЩӳÉäʵÌå¡£»ùÓÚÕâ¸öÏë·¨£¬ Richard¾ÍÈ·¶¨ÁË£ºAddSingleDataEntity²ÎÊýÊÇÒ»¸öÊý¾ÝʵÌå¡£(±¾ÏµÁÐÎÄÕÂÔ¼¶¨£ºÊý¾ÝʵÌ壬¼´DataEntity£¬¾ÍÊÇORM¶ÔÒ»¸öÊý¾Ý¿â±í½øÐÐÓ³Éäºó²úÉúµÄʵÌåºÍÊý¾Ý¿âÖеıíÒ»Ò»¶ÔÓ¦£¬ÈçÔÚÊý¾Ý¿âÖÐÓÐÒ»ÕÅEmployee±í£¬Linq to Sql½«»á°ÑËüÓ³Éä³ÉΪEmployeeµÄÒ»¸öÀ࣬Õâ¸öÀà¾Í³ÆÎªÊý¾ÝʵÌå)¡£ÒòΪÕâЩ·½·¨×îÖÕÊDzÙ×÷Êý¾ÝʵÌåµÄ£¬ËùÒÔ°üº¬ÕâЩ·½·¨µÄ½Ó¿ÚÃû×־Ͷ¨ÒåΪIDataContext¡£

ÒòΪ²»Í¬µÄ±í²úÉú²»Í¬µÄÊý¾ÝʵÌ壬µ«ÊÇRichard»¹ÏëʹµÃAddSingleDataEntityÕâ¸ö·½·¨¿ÉÒÔ½ÓÊÜÈκεÄÊý¾ÝʵÌ壬ËùÒÔ´ËʱºÜÓбØÒª¶ÔÊý¾ÝʵÌå½øÐгéÏó¡£ËùÒÔRichardÏëµ½Á˶¨ÒåÒ»¸ö½Ó¿Ú£ºIDataEntity,´òËãÈÃËùÓÐͨ¹ýORMÉú³ÉµÄÊý¾ÝʵÌå¶¼¼Ì³ÐÕâ¸ö½Ó¿Ú¡£¶øÇÒRichard»¹Ïëµ½£º

1. Èç¹ûBLLÖ±½ÓÒýÓÃDALʹÓõģ¬ÄÇôIDataEntity¿ÉÄÜ»áÔÚBLLÖгöÏֵġ£

2. Èç¹ûBLLͨ¹ýrepositoryÈ¥DALÖлñÈ¡Êý¾Ý£¬ÄÇôµ½Ê±ºòBLL¿ÉÄܶ¼²»»áÖ±½ÓÒýÓÃDAL£¬µ«ÊÇBLL×îÖÕ»¹ÊǵÃʹÓÃÊý¾Ý×öÊÂÇ飬ËùÒÔIDataEntity»¹ÊÇ»áÔÚBLLÖгöÏÖ£¬ËùÒÔ£¬IDataEntity½Ó¿Ú×îºÃ¶¨ÒåÔÚÒ»¸ö¹«¹²µÄµØ·½¡£

Richard¾ö¶¨Ð½¨Ò»¸öCommonµÄÀà¿â£¬¼ÓÈëIDataEntity½Ó¿ÚµÄ¶¨Ò壬ÏÖÔÚÕâ¸ö½Ó¿ÚÀïÃæÊ²Ã´¶¼Ã»ÓУ¬Ö»ÊÇÒ»¸ö±ê¼Ç¶øÒÑ£¬±íÃ÷¼Ì³ÐÕâ¸ö½Ó¿ÚµÄÀà¾ÍÊÇÊý¾ÝʵÌåÀà¡£

AddSingleDataEntity(IDataEntity dataEntity);

»¹ÓÐÒ»µã¾ÍÊǾ¡Á¿µÄʹÓÃÀàÐͰ²È«µÄ·½·¨£¬ÓÚÊÇRichard°Ñ·½·¨¸Ä³ÉÁË·¶ÐÍ·½·¨£º

AddSingleDataEntity<T>(T dataEntity) where T:IDataEntity,class,new();

ÓÚT µÄÄÇÐ©Ô¼Êø£ºT:IDataEntity,class,new()£¬ÊÇ¿¼Âǵ½ÁËLinqºÍEFÖжÔÊý¾ÝʵÌåµÄһЩҪÇó¡£

Ò»°ãµÄAdd·½·¨¶¼ÊÇ·µ»ØÌí¼ÓÊÇ·ñ³É¹¦£¬true»òÕßfalse£¬·½·¨ÔٴθÄÔ죺

bool AddSingleDataEntity<T>(T dataEntity) where T:IDataEntity,class,new();

È»ºóRichard¾Íд³öÁËÉÏÃæÁгöµÄһЩ·½·¨µÄ¶¨Ò壺

bool AddSingleDataEntity(T dataEntity) where T : class,IDataEntity, new();

 ¡¡¡¡¡¡¡¡bool AddDataEntityList(List dataEntityList) where T : class,IDataEntity, new();

 ¡¡¡¡¡¡¡¡bool DeleteDataEntityList(List dataEntityList) where T : class,IDataEntity, new();

 ¡¡¡¡¡¡¡¡bool DeleteSingleDataEntity(T dataEntity) where T : class,IDataEntity, new();

¡¡¡¡¡¡¡¡bool UpdateSingleDataEntity(T dataEntity) where T : class,IDataEntity, new();

 ¡¡¡¡¡¡¡¡bool UpdateDataEntityList(List dataEntityList) where T : class,IDataEntity, new();

ÖÁÓÚGetDataEntityList£¬°´ÕÕ֮ǰµÄ²éѯ¶ÔÏóµÄÏë·¨£¬´«ÈëÒ»¸öIQueryµÄ½Ó¿Ú£º

List<T> GetDataEntityList<T>(IQuery query)where T : class,IDataEntity, new();

2. ¶Ô»ù±¾µÄ²Ù×÷µÄ½øÒ»²½µÄ˼¿¼

ȷʵ£¬ÉÏÃæÄÇЩ»ù±¾²Ù×÷ÊÇûÓÐʲôÎÊÌâµÄ£¬ÏÖÔÚRichardÓÖ¿¼Âǵ½ÁËÁíÍâµÄһЩÎÊÌ⣬»¹ÊÇÒÔAddSingleDataEntity·½·¨ÎªÀý£º

a. ÓÐЩʱºò£¬²»½ö½öÒªÖªµÀ²åÈëÊý¾ÝÊÇ·ñ³É¹¦£¬¶øÇÒ»¹Ïë·µ»ØÐ¼ÓÈëÊý¾ÝÔÚÊý¾Ý¿âÖеÄÖ÷¼üÐÅÏ¢À´×öÆäËûµÄÓÃ;¡£Ôõô°ì£¿ÔÙÀ´²éѯһ´Î£¿

b. Èç¹û²åÈëʧ°ÜÁË£¬½ö½öÖ»ÊÇ·µ»ØÒ»¸öfalseÂ𣿿ÉÄÜÆäËûµÄµ÷ÓÃÄ£¿éÏëÖªµÀµ½µ×ÊÇ·¢ÉúÁËʲôÒì³£¶øµ¼ÖµIJåÈëʧ°Ü£¬¶øÇÒÆäËûµÄÄ£¿é¶ÔÓÚ·¢ÉúµÄÒì³£ÓÐ×Ô¼ºµÄ´¦Àí·½·¨£¬ËùÒÔAddSingleDataEntityÒªÌṩ×ã¹»µÄÐÅÏ¢¡£

»ùÓÚÉÏÃæµÄ˼¿¼£¬ËùÒÔÕâ¸ö»ù±¾µÄ²Ù×÷·½·¨²»ÄÜÖ»ÊǼòµ¥µÄ·µ»ØÒ»Ð©¼òµ¥µÄÖµ¾ÍÍêÁË¡£Ò²¾ÍÊÇ˵£¬ÕâЩ·½·¨Òª·µ»ØÒ»¸öÊý¾Ý°ü£ºÀïÃæ°üº¬ºÜ¶àÐÅÏ¢£¬ÒÔ±ãÆäËûµÄµ÷ÓÃÄ£¿éÀ´Ê¹ÓÃÕâЩÐÅÏ¢£¬¸Ð¾õÓеãÏñÊÇC#ʼþÖеÄeventArgs.

ËùÒÔRichardÔÚCommonµÄÄǸöÀà¿âÖмÓÈëÒ»¸ö¶ÔÏ󣬶¨ÒåÈçÏ£º

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/-->public class DataResult where T : IDataEntity
    {

        public List EntityList { get; set; }

        public bool IsSuccess { get; set; }

        public Exception Exception { get; set; }

        public object CustomData { get; set; }

    }

Õâ¸öÀà×îºó½«»á×÷Ϊ·½·¨µÄ·µ»Ø½á¹û¡£

Richard·¢¾õ£¬ÉÏÃæµÄ·½·¨È·ÊµÊǺÜÓС±×Ô½âÊÍÐÔ¡±£¬µ«ÊǺܶàµÄ¿ª·¢ÈËÔ±¶ÔÕâЩCRUD²Ù×÷µÄÃû×Ö¶¼ºÜÊìϤÁË£¬¶øÇÒ×îºó¿ª·¢µÄ³öÀ´µÄ¼Ü¹¹µÄʹÓÃÕß»¹ÊÇ¿ª·¢ÈËÔ±£¬Ó¦¸Ã·ûºÏËûÃǵÄϰ¹ß£¬ËùÒÔRichard¸Ä±äÁË·½·¨µÄÃû×Ö£¬¸Ä±äºóµÄ°æ±¾ÈçÏ£º

´úÂëCode highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/--> public interface IDataContext
    {
        IList Query(IQuery queryCondition) where T : class,IDataEntity, new();
        IList Query(IQuery queryCondition, int pageIndex, int pageCount) where T : class,IDataEntity, new();

        // CRUD services (well, mostly CUD)
        T Add(T item) where T : class,IDataEntity, new();
        IList Add(List itemList) where T : class,IDataEntity, new();
        bool Delete(List itemList) where T : class,IDataEntity, new();
        bool Delete(T item) where T : class,IDataEntity, new();
        T Update(T item) where T : class,IDataEntity, new();
        List Update(List itemList) where T : class,IDataEntity, new();

    }

3. ²éѯ¶ÔÏóµÄһЩ˼¿¼

ÔÚÉÏÃæµÄ»ù±¾µÄ²Ù×÷ÖУ¬ÔÚQuery·½·¨Öд«ÈëµÄÊDzéѯ¶ÔÏó£¬ÒòΪ²éѯ¶ÔÏóÊÇ»ùÓÚ½âÊÍÆ÷µÄ£¬¿ÉÒÔÔÚ½âÊÍÍê²éѯ¶ÔÏóÖ®ºó¾Í»º´æÆðÀ´¡£ÒÔºóÔٴβéѯµÄʱºò£¬Èç¹ûÁ½¸ö²éѯµÄ¶ÔÏóÒ»Ñù(ÀýÈçÔÚ¹¹Ôì²éѯ¶ÔÏóʱºò£¬¿ÉÒÔΪÆä¶¨ÒåÒ»¸öΨһµÄ±êʾ)£¬ÄÇô¾Í²»ÓÃÔÙÈ¥¶Ô²éѯ¶ÔÏó½øÐнâÊÍ¡£Èç¹û¸ù¾ÝÕâ¸ö²éѯ¶ÔÏóµÄ²é³öµÄÊý¾Ý¶¼ÊÇÖ»¶ÁµÄ£¬ÄǾ͸üºÃÁË£¬¾Í¿ÉÒ԰Ѳéѯ¶ÔÏóºÍ¶ÔÓ¦µÄ½á¹ûÒ»Æð»º´æÆðÀ´¡£

±¾ÆªÎÄÕÂÉæ¼°¼¼Êõ²»¶à£¬Ö÷ÒªÊÇЩÏë·¨(´úÂ벿·ÖÕýÔÚʵÏÖ)¡£

×îÖ÷ÒªµÄ¸Ä½øÖ÷ÒªÔÚÓÚÒµÎñ²ã¿ª·¢µÄ¼ò»¯¡£

´ó¼Ò¶¼ÖªµÀϵͳµÄºËÐľÍÊÇÒµÎñÂß¼­²ãÁË£¬ÒµÎñÂß¼­µÄ´úÂëÍùÍùµÃÎÒÃÇÒ»ÐÐÐеÄÇôúÂ룬¶øÇÒ²»Í¬µÄϵͳ£¬Ã¿´Î¶¼µÃÒ»ÐÐÒ»ÐеÄÖØÍ·À´Ð´£¬ÕâÑùµÄ¿ª·¢µÄЧÂÊ¿ÉÏë¶øÖªÁË¡£»ùÓÚÕâ¸öÔ­Òò£¬ËùÒÔºÜÓбØÒªÓÃһЩ¹¤¾ßºÍ·½·¨À´¼ÓËÙ¿ª·¢¡£

¾­¹ýÕâÁ½ÌìµÄ˼¿¼£¬¸öÈËÈÏΪ×î´óµÄ¸Ä½ø¾ÍÊÇ£ºÒµÎñÂß¼­ÀàµÄͼÐλ¯ÅäÖá£ÎÒÏȸø³öͼµÄʾÀý£¬È»ºóÔÙÏêϸµÄ˵Ã÷Õâ¸ö˼Ïë¡£

´ó¼ÒÖªµÀ£¬ÔÚÒ»¸öBLLÀàÖаüº¬ÁË´óÁ¿µÄÒµÎñ¹æÔòºÍÑéÖ¤¹æÔò£¬¶øÇÒÕâЩ¹æÔòÍùÍùÐèÒªÊÖ¹¤À´Ð´£¬ÌرðÊÇÒ»¸öÒµÎñÀàµÄһЩÊôÐÔ£¬Òª¶ÔËûÃǵÄÊý¾ÝÀàÐÍ£¬³¤¶È£¬¸ñʽ£¬×´Ì¬¸ü¸Ä¸ú×Ù£¬ÊÇ·ñ¿ÉÒÔ¶ÁдµÈ½øÐÐÑéÖ¤£¬ËäȻ˵ÏÖÔÚÒѾ­ÓÐÁËһЩÀà¿â¿ÉÒÔʹÓã¬ÈçEnterprise LibraryÖеÄValidation×é¼þ£¬µ«ÊÇÎÒÃÇ»¹ÊÇҪд´úÂ룬Èç¹û°ÑÕâЩ¹æÔòͨ¹ýͼÐλ¯µÄÍÏ×§µÄ·½Ê½£¬»òÕßͼÐεÄÅäÖ÷½Ê½À´Éú³ÉC#´úÂ룬ȻºóÐèÒª¶¨ÖƵIJ¿·ÖÔÙÊÖ¶¯µÄÐ޸ģ¬ÕâÑù¿ª·¢¾Í¼ò»¯¶àÁË(ÉõÖÁ¿ÉÒÔ°Ñ×Ô¶¯Éú³ÉµÄ´úÂëºÍÐèÒªÊÖдµÄ´úÂë·Ö±ð·ÅÔÚpartialÀàÖУ¬´ó¼Ò¿ÉÒÔÏëÏëVSÖпª·¢Window³ÌÐòʱ£¬VS¾Í°ÑÄÇЩ×Ô¶¯Éú³ÉµÄ´úÂë·Åµ½ÁËÁíÍâµÄÒ»¸öpartialÀàÖÐ)¡£ÓùýEnterprsie LibraryµÄÅóÓÑÒѾ­ºÜÇå³þÄǸöͼÐλ¯ÅäÖù¤¾ßµÄÍþÁ¦¡£

Ê×ÏÈ£¬À´¿´µÚÒ»¸öͼ(Éè¼ÆµÄ²Ýͼ)¡£

µ±ÎÒÃÇÐÂÌí¼ÓÁËÒ»¸öÒµÎñÀàµÄÒԺ󣬼ÙÉèÕâ¸öÒµÎñÀàµÄΪ Product£¬ÔÚ¡±½â¾ö·½°¸¡±¹ÜÀíÆ÷Öеã»÷ÓÒ¼ü£¬Ñ¡Ôñ¡±ÅäÖÃÒµÎñÀࡱ£¬¾Í»áµ¯³öͼÐλ¯µÄÅäÖô°Ì壬´Ó²ÝͼÖпÉÒÔ¿´³ö£º

1. Properties£¬ÎªÒµÎñÀàÌí¼ÓµÄÊôÐÔ¡£

2. DataProvider£¬Õâ¸öÅäÖñíÃ÷ÁËÒµÎñÀàʹÓÃÄĸöÊý¾ÝÌṩÕߣºAdoDotNetProvider,LinqProvider,EntityFrameworkProvider.(ÕâЩProvider¾ÍÊÇ֮ǰDALϵÁÐÎÄÕÂ×îÖÕ»áÍê³ÉµÄÄÇЩProvider)

3. MappingTypeÕâ¸öÒµÎñÀàºÍÄǸöÊý¾ÝÀ´Ô´ÌåÓ³É䣬ÕâÀïÓÐÁ½¸öÑ¡Ôñ£ºDataTable,DataEntity(LinqʵÌå»òÕßEFʵÌ壬DataTable µÄ¸Ä½øÊÇÀ´Ô´ÓÚ½ðÉ«º£ÑóºÍvirus£¬thanks)

4. MappingTypeName:Õâ¸öÅäÖÃÏî¾Í±íÃ÷Õâ¸öÒµÎñÀà»áºÍÄĸöÊý¾ÝÀ´Ô´ÌåµÄÊôÐÔ½øÐÐÓ³É䣬È磬ÔÚÉÏÃæÑ¡ÔñÁËMappingTypeΪDataEntity£¬¶øÇÒÑ¡ÔñDataEntityµÄÃû×ÖMS_Product(ͨ¹ýLinqÉú³ÉµÄʵÌ壬¶ÔÓ¦Êý¾Ý¿âÖеÄMS_Product±í)¡£µ±È»£¬Ò»¸öÒµÎñÀàµÄÊôÐÔ×ֶοÉÄÜÀ´×Ô¶à¸öDataEntityµÄ×éºÏ£¬ËùÒÔ£¬ÕâÀïµÄMappingTypeNameÊǶà¸ö¡£

ÏÂÃæÀ´¿´µÚ¶þ¸ö²Ýͼ¡£

Õâ¸öͼµÄ³öÏÖʱµ±µã»÷Á˵ÚÒ»¸öͼÖеÄProperties³öÏֵģ¬Õâ¸ö½çÃæ¾ÍÊÇרÃÅÀ´ÅäÖÃÒµÎñÀàµÄ¾ßÌåµÄÊôÐԵġ£

Name£º¾ÍÊÇÊôÐÔµÄÃû×Ö¡£

MappingTo:¾ÍÊÇÖ¸³öÒªºÍÄĸöÊý¾ÝʵÌåµÄÄĸöÊôÐÔÓ³Éä¡££¨Ö®Ç°µÚÒ»¸ö½çÃæÒѾ­Öƶ¨µÄÊý¾ÝʵÌ壩¡£

ValidationRules£ºÓÃÀ´Ö¸¶¨ÎªÕâ¸öÊôÐÔʹÓÃÄÄЩ¹æÔò¡£

ÏÂÃæ¾ÍÀ´¿´¿´µÚÈý¸ö²Ýͼ¡£

Õâ¸ö²ÝͼºÍ֮ǰµÄµÚ¶þ¸ö²ÝͼÀàËÆ£¬Ö»²¹¹ýÕâ¸ö½çÃæÊÇרÃÅÓÃÀ´¸øÌض¨µÄÊôÐÔÅäÖÃÑéÖ¤¹æÔòµÄ¡£

¾Í½éÉܵ½ÕâÀïÁË£¬Ï£Íû´ó¼ÒÒÔºó¶à¶àÌá³öÒâ¼û£¬±ãÓÚ½øÒ»²½µÄ¸Ä½ø£¬×îºó¿ª·¢µÄFramework»áÒÔÔ´´úÂëµÄÐÎʽ¸ø³öµÄ¡£

   
3139 ´Îä¯ÀÀ       27
 
Ïà¹ØÎÄÕÂ

Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
 
Ïà¹ØÎĵµ

ÖØ¹¹-¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ
Èí¼þÖØ¹¹v2
´úÂëÕû½àÖ®µÀ
¸ßÖÊÁ¿±à³Ì¹æ·¶
 
Ïà¹Ø¿Î³Ì

»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

ʹÓÃdecj¼ò»¯Webǰ¶Ë¿ª·¢
Web¿ª·¢¿ò¼ÜÐγÉÖ®ÂÃ
¸üÓÐЧÂʵÄʹÓÃVisual Studio
MVP+WCF+Èý²ã½á¹¹´î½¨¿ò¼Ü
ASP.NETÔËÐлúÖÆÇ³Îö¡¾Í¼½â¡¿
±àд¸üºÃµÄC#´úÂë
10¸öVisual Studio¿ª·¢µ÷ÊÔ¼¼ÇÉ


.NET¿ò¼ÜÓë·Ö²¼Ê½Ó¦Óüܹ¹Éè¼Æ
.NET & WPF & WCFÓ¦Óÿª·¢
UML&.Net¼Ü¹¹Éè¼Æ
COM×é¼þ¿ª·¢
.NetÓ¦Óÿª·¢
InstallShield


ÈÕÕÕ¸Û .NET Framework & WCFÓ¦Óÿª·¢
Éñ»ªÐÅÏ¢ .NETµ¥Ôª²âÊÔ
±±¾© .NetÓ¦ÓÃÈí¼þϵͳ¼Ü¹¹
̨´ïµç×Ó .NET³ÌÐòÉè¼ÆÓ뿪·¢
ÈüÃÅÌú¿Ë C#Óë.NET¼Ü¹¹Éè¼Æ
¹ã¶«ºËµç .NetÓ¦ÓÃϵͳ¼Ü¹¹