NHibernate
NHibernate એ માઈક્રોસોફ્ટ ડોટ નેટ પ્લેટફોર્મ માટે ઓબ્જેક્ટ-રીલેશ્નલ મેપિંગ (ORM) સોલ્યુશન છે. તે પરંપરાગત રીલેશ્નલ ડેટાબેઝમાં ઓબ્જેક્ટ-ઓરિએન્ટેડ ડોમેન મોડેલનું મેપિંગ કરવા માટે એક માળખું પ્રદાન કરે છે. તેનો હેતુ વિકાસકર્તાને રીલેશ્નલ ડેટા દ્રઢતા-સંબંધિત પ્રોગ્રામિંગ કાર્યોના નોંધપાત્ર ભાગમાંથી રાહત આપવાનો છે. એન. એચ. આઈ. બી. આર. એન. એ. ટી. એ મફત અને ઓપન સોર્સ સોફ્ટવેર છે જે જી. એન. યુ. લેસર જનરલ પબ્લિક લાયસન્સ હેઠળ વિતરિત કરવામાં આવે છે. NHibernate એ હાઇબરનેટનું બંદર છે. એન. એચ. આઈ. બી. આર. એન. એટનું પ્રાથમિક લક્ષણ ડોટ નેટ વર્ગોથી ડેટાબેઝ કોષ્ટકો (અને સી. એલ. આર. ડેટા પ્રકારોથી એસ. ક્યુ. એલ. ડેટા પ્રકારો) સુધીનું મેપિંગ છે. એન. એચ. આઈ. બી. આર. એન. એ. ટી. ડેટા ક્વેરી અને પુનઃપ્રાપ્તિ સાધનો પ્રદાન કરે છે. તે એસક્યુએલ આદેશો ઉત્પન્ન કરે છે અને મેન્યુઅલ ડેટા સેટ હેન્ડલિંગ અને ઓબ્જેક્ટ કન્વર્ઝનની જરૂરિયાતને દૂર કરે છે, એપ્લિકેશનને મોટાભાગના એસક્યુએલ ડેટાબેઝમાં પોર્ટેબલ રાખે છે, જેમાં ડેટાબેઝ પોર્ટેબિલિટી ખૂબ જ ઓછા પ્રદર્શન ઓવરહેડ પર વિતરિત થાય છે. એન. એચ. આઈ. બી. આર. એન. ટી. પ્લેન ઓલ્ડ સી. એલ. આર. ઓબ્જેક્ટ્સ (પી. ઓ. સી. ઓ.) માટે પારદર્શક દ્રઢતા પૂરી પાડે છે. સતત વર્ગ માટે એકમાત્ર કડક જરૂરિયાત નો-આર્ગ્યુમેંટ કન્સ્ટ્રક્ટર છે, જે સાર્વજનિક હોવું જરૂરી નથી. (કેટલીક એપ્લિકેશનોમાં યોગ્ય વર્તણૂક માટે ઇક્વલ્સ () અને ગેટહેશકોડ () પદ્ધતિઓ પર પણ વિશેષ ધ્યાન આપવાની જરૂર છે.) ટોમ બેરેટએ NHibernate ની શરૂઆત કરી હતી, અને બાદમાં માઇક ડોર્ફલર અને પીટર સ્મુલોવિક્સ દ્વારા પસંદ કરવામાં આવી હતી. 2005ના અંતમાં, જેબોસ, ઇન્ક. (હવે રેડ હેટનો ભાગ) એ તેના ભાવિ સંસ્કરણો પર પૂર્ણ-સમય કામ કરવા માટે NHibernateના તે સમયના અગ્રણી વિકાસકર્તા સેર્ગેઈ કોશેયેવને નિયુક્ત કર્યા હતા. 2006ના અંતમાં, જેબોસે આ પ્રોજેક્ટને ટેકો આપવાનું બંધ કરી દીધું હતું. NHibernate હવે સંપૂર્ણપણે વિકસિત અને સમુદાય દ્વારા સંચાલિત છે. આવૃત્તિ 1 એ હાઇબરનેટ 2.1 ના સુવિધા સમૂહને પ્રતિબિંબિત કર્યું, તેમજ હાઇબરનેટ 3 માંથી સંખ્યાબંધ સુવિધાઓને પ્રતિબિંબિત કરી. NHibernate 1.2.1, જે નવેમ્બર 2007માં બહાર પાડવામાં આવ્યું હતું, તેણે હાઇબરનેટ 3માંથી ઘણી વધુ સુવિધાઓ રજૂ કરી હતી અને. NET 2.0 માટે આધાર, સંગ્રહિત પ્રક્રિયાઓ, જેનેરિક અને રદ કરી શકાય તેવા પ્રકારો રજૂ કર્યા હતા. NHibernate 2 NHibernate 2 23 ઓગસ્ટ, 2008ના રોજ રજૂ કરવામાં આવ્યું હતું. લાક્ષણિકતાઓની દ્રષ્ટિએ તે હાઇબરનેટ 3.2 સાથે તુલનાત્મક છે. આવૃત્તિ 2 ના પ્રકાશન સાથે, NHibernate એ. NET 1.1 માટે આધાર પડતો મૂક્યો. એન. એચ. આઈ. બી. આર. એન. એ. ટી. 2,17 જુલાઈ, 2009ના રોજ રજૂ કરવામાં આવી હતી. NHibernate 3.0 ને 4 ડિસેમ્બર, 2010ના રોજ રજૂ કરવામાં આવ્યું હતું અને તે. NET 3.5 નો ઉપયોગ કરનારું પ્રથમ સંસ્કરણ છે, જેમ કેઃ ઇન્ટિગ્રેટેડ LINQ સપોર્ટ સ્ટ્રોંગલી ટાઇપ કરેલ માપદંડ જેવા API જેને ક્વેરી ઓવર ન્યૂ AST-આધારિત એચક્યુએલ એન્જિન માટે પાર્સર લેઝી લોડિંગ કૉલમ માટે NHibernate 3.2 NHibernate 3.2 એપ્રિલ, 2011માં રજૂ કરવામાં આવ્યું હતું. નવી વિશેષતાઓમાં નીચેનાનો સમાવેશ થાય છેઃ કોડ દ્વારા મેપિંગઃ અસ્ખલિત રૂપરેખાંકન,. એચ. બી. એમ. એક્સ. એમ. એલ. ફાઇલો હવે જરૂરી નથી; પેટા પસંદગીઃ ઘટકો તરીકે એસ. ક્યુ. એલ. દૃશ્યોને મેપ કરવાની ક્ષમતા; એચ. ક્યુ. એલ. પેજિંગઃ એચ. ક્યુ. એલ. પર ટેક અને એસ. કે. આઇ. પી.; સંકલિત બાઈટકોડ પ્રદાતાઃ જમાવવા માટે એક ઓછી ડી. એલ. એલ. NHibernate 4.0 NHibernate 4.0 17 ઓગસ્ટ, 2014ના રોજ રજૂ કરવામાં આવ્યું હતું. આ સંસ્કરણ માટે. NET ફ્રેમવર્ક 4.0 અથવા પછીની જરૂર છે. NHibernate 5.0 NHibernate 5.0 10 ઓક્ટોબર, 2017ના રોજ રજૂ કરવામાં આવ્યું હતું. તે એસિંક્રોનસ પ્રોગ્રામિંગ માટે આધાર પૂરો પાડે છે. આ સંસ્કરણ માટે. NET ફ્રેમવર્ક 4.6.1 અથવા પછીની જરૂર છે. NHibernate 5.1 NHibernate 5.1 17 માર્ચ, 2018ના રોજ રજૂ કરવામાં આવ્યું હતું. તે ડોટ નેટ સ્ટાન્ડર્ડ 2 અને ડોટ નેટ કોર 2 ને સપોર્ટ કરે છે. NHibernate 5.2 NHibernate 5.2 4 ડિસેમ્બર, 2018ના રોજ રજૂ કરવામાં આવ્યું હતું. NHibernate 5.3 NHibernate 19 જુલાઈ, 2020ના રોજ રજૂ કરવામાં આવ્યું હતું. યોગદાન ઓપન સોર્સ સોફ્ટવેર તરીકે, NHibernate ને તેના વપરાશકર્તાઓ તરફથી ઘણા યોગદાન મળ્યા છે. LINQ ના અમલીકરણથી NHibernate સાથે ભાષા સંકલિત ક્વેરીના ઉપયોગની મંજૂરી મળી છે. NHibernate પ્રોફાઇલર NHibernate પ્રોફાઇલર એક ઓબ્જેક્ટ-રીલેશ્નલ મેપિંગ ટૂલ (ORM) છે જે NHibernate માટે રીઅલ-ટાઇમ વિઝ્યુઅલ ડીબગર તરીકે કામ કરે છે. તે એપ્લિકેશનના એકંદર પ્રદર્શનને વધારવા માટે ડેટાબેઝ દ્વારા બિનજરૂરી કાર્યને દૂર કરવા માટે બિનકાર્યક્ષમ એસક્યુએલ ડેટા ક્વેરીઝને ઓળખે છે. એન. એચ. આઈ. બી. આર. એન. એ. ટી. પ્રોફાઇલર વપરાશકર્તાઓને ડેટા ક્વેરીઓ માટે પણ ચેતવણી આપે છે જે સમયસર ખૂબ ખર્ચાળ હોય છે અને તેમને સી #કોડમાં ચોક્કસ રેખા તરફ દોરી જાય છે. અહીં ડેટાબેઝમાં ઓબ્જેક્ટ ઉમેરવા માટે એક કોડ સ્નિપેટનો નમૂનો લો અને NHibernate નો ઉપયોગ કરીને ડેટાબેઝમાં ઓબ્જેક્ટને કેવી રીતે પુનઃપ્રાપ્ત કરવું, તેમાં ફેરફાર કરવો અને અપડેટ કરવું તે બતાવો. //ડેટાસ્ટોરમાં ગ્રાહકને ઉમેરો// 'સત્ર કારખાના' એ એક થ્રેડ-સલામત ઓબ્જેક્ટ છે જે એપ્લિકેશન જીવનકાળ દીઠ એકવાર બનાવવામાં આવે છે (બનાવવા માટે સેકંડ લાગી શકે છે)// રૂપરેખાંકન ફાઇલો પર આધારિત છે જે ડેટાબેઝ કોષ્ટકોને સી #ઓબ્જેક્ટ્સ// (દા. ત.) પર કેવી રીતે મેપ કરવામાં આવે છે તે નિયંત્રિત કરે છે. કયા ગુણધર્મ નકશા કરે છે કે ડેટાબેઝ કોષ્ટકમાં કયા સ્તંભમાં)///'સત્ર' મેળવવા માટે સુરક્ષિત અને ઝડપી નથી અને તેનો ઉપયોગ કરીને ડેટાબેઝ સાથે જોડાણ તરીકે વિચારી શકાય છે (વાર સત્ર = sessionFactory.OpenSession ()) {// વ્યવહાર (IT વ્યવહાર વ્યવહાર = session.BeginTransaction ()) {// નો ઉપયોગ કરીને db વ્યવહારને રજૂ કરે છે નીચેની લીટી ગ્રાહકને ડેટાબેઝમાં દાખલ કરવા માટે NHibernate ની વસ્તુઓની સૂચિમાં ઉમેરે છે// પરંતુ તે આ તબક્કે SQL શામેલ આદેશને અમલમાં મૂકતા નથી *. //* જો ID ક્ષેત્ર ડેટાબેઝ દ્વારા પેદા થાય છે (દા. ત. જ્યારે સેવને session.Save (નવો ગ્રાહક {ID = Guid.NewGuid (), ફર્સ્ટનેમ = "બોસ", ઉંમર = 50}) કહેવામાં આવે ત્યારે NHibernate SQL INSERT ને એક્ઝિક્યુટ કરશે;// નીચેનો કોલ SQL INSERT ને એક્ઝિક્યુટ કરશે અને વ્યવહારને transaction.Commit ();}}// ડેટાબેઝમાંથી ગ્રાહકને રીટ્રીવ કરશે, રેકોર્ડમાં ફેરફાર કરશે અને (વાર સત્ર = sessionFactory.OpenSession ()) નો ઉપયોગ કરીને ડેટાબેઝને અપડેટ કરશે. //જ્યારે. ફર્સ્ટઓર્ડડિફોલ્ટ બોલાવવામાં આવે ત્યારે જ NHibernate એસક્યુએલ ક્વેરીને એક્ઝિક્યુટ કરશે ગ્રાહક ગ્રાહક = session.Query <ગ્રાહક> (). ક્યાં (c => c.Token = = ટોકન). ફર્સ્ટઓર્ડડિફોલ્ટ ();// હવે ગ્રાહક 'સત્ર' ઓબ્જેક્ટનો 'ભાગ છે અને NHibernate તેમાં થયેલા ફેરફારો// પર નજર રાખે છે જો (ગ્રાહક! = નલ) {// ઓબ્જેક્ટની પ્રોપર્ટીને બદલવાથી SQL એક્ઝિક્યુટ થતું નથી customer.TokenVerified = સાચું;// વ્યવહારના પરિણામોને SQL અપડેટ સ્ટેટમેન્ટ// NHibernate માં પ્રતિબદ્ધ કરવાથી' ગ્રાહક 'એ હકીકતનો ટ્રેક રાખવામાં આવે છે કે ઓબ્જેક્ટ-રીલેશ્નલ મેપિંગ સોફ્ટવેરની યાદી પણ જુઓ. NET પર્સિસ્ટન્સ API (NPA) સંદર્ભો ગ્રંથસૂચિ બાહ્ય લિંક્સ NHibernate હોમપેજ C શાર્પ. NET પ્રોગ્રામિંગ ટૂલ્સ. NET ઓબ્જેક્ટ-રીલેશ્નલ મેપિંગ ટૂલ્સ ઓબ્જેક્ટ-રીલેશ્નલ મેપિંગમાં પ્રોગ્રામ કરેલ ફ્રી સોફ્ટવેર