मुझे यह जानने की ज़रूरत है कि JoinQueryOver और JoinAlias के बीच क्या अंतर है, और प्रत्येक का उपयोग कब करें?JoinQueryOver और JoinAlias के बीच क्या अंतर है?
धन्यवाद।
मुझे यह जानने की ज़रूरत है कि JoinQueryOver और JoinAlias के बीच क्या अंतर है, और प्रत्येक का उपयोग कब करें?JoinQueryOver और JoinAlias के बीच क्या अंतर है?
धन्यवाद।
कार्यात्मक रूप से वे वही काम करते हैं, किसी अन्य इकाई में शामिल होते हैं। एकमात्र अंतर वह है जो वे वापस आते हैं। JoinQueryOver एक नई क्वेरीओवर लौटाता है जिसमें मौजूदा इकाई इकाई शामिल हो जाती है, जबकि JoinAlias मूल क्वेरीओवर लौटाता है जिसमें वर्तमान इकाई मूल रूट इकाई के रूप में होती है। (http://nhibernate.info/doc/nh/en/index.html#queryqueryover से)
IQueryOver<Cat,Kitten> catQuery =
session.QueryOver<Cat>()
.JoinQueryOver<Kitten>(c => c.Kittens)
.Where(k => k.Name == "Tiddles");
और
Cat catAlias = null;
Kitten kittenAlias = null;
IQueryOver<Cat,Cat> catQuery =
session.QueryOver<Cat>(() => catAlias)
.JoinAlias(() => catAlias.Kittens,() => kittenAlias)
.Where(() => kittenAlias.Name == "Tiddles");
कार्यात्मक रूप में एक ही कर रहे हैं:
जो भी आप उपयोग व्यक्तिगत स्वाद की बात है। ध्यान दें कि बिल्ली के बच्चे एलीस को दूसरी क्वेरी में स्पष्ट रूप से संदर्भित किया गया है।
QueryOver Series - Part 2: Basics and Joining by Andrew Whitaker एक बहुत अच्छा विवरण देता है:
सारांश:
IQueryOver
दो प्रकार पैरामीटरTRoot
औरTSubType
.Select
साथ एक सामान्य प्रकारTRoot
पर चल रही है, जबकि अन्य QueryOver तरीकों पर काम हैTSubType
। के रूप में आप एक प्रश्न का निर्माण कर रहेTRoot
ही रहता है, लेकिनTSubType
बदल जाता है जब आप का उपयोग करके शामिलJoinQueryOver
JoinQueryOver
औरJoinAlias
ऐड आपकी क्वेरी के लिए मिलती है।JoinAlias
TSubType
नहीं बदलता है, लेकिनJoinQueryOver
करता है।- आप जब गुण है कि करने के लिए
TRoot
याTSubType
नोट के नहीं हैं कि दूसरे उदाहरण में आप उपनाम 'बिल्ली का बच्चा kittenAlias = अशक्त घोषित करने के लिए है कि उल्लेख करने के लिए एक प्रश्न के निर्माण कल्पित नामों का प्रयोग कर सकते हैं,' और 'बिल्ली catAlias = शून्य;' पहले। मुझे यह गन्दा लगता है, इसलिए जब तक यह जरूरी नहीं है तब तक मैं 'JoinAlias' का उपयोग नहीं करता। – foka
इसे स्पष्टीकरण के लिए @ एफओका धन्यवाद। मुझे यह याद आया और सोच रहा था कि यह क्यों काम नहीं कर रहा था। –