আমার জানা দরকার যে জয়েন্টকুয়েরওভার এবং জয়েন্টএলিয়াসের মধ্যে পার্থক্য কী এবং কখন ব্যবহার করতে হবে?
উত্তর:
কার্যত তারা একই কাজ করে, অন্য সত্তায় একটি সংযুক্তি তৈরি করে। পার্থক্য কেবলমাত্র তারা ফিরে আসে। জয়েনকুইয়ারওভার একটি নতুন কোয়েরিওভারকে রিটার্ন দেয় যার সাথে বর্তমান সত্তা সত্তা যোগ দেয়, এবং জয়েনআলিয়াস মূল কোয়েরিওভারকে রিটার্ন দেয় যার মূল সত্তা হিসাবে বর্তমান সত্তা রয়েছে।
আপনি যে কোনওটি ব্যবহার করুন ব্যক্তিগত স্বাদের বিষয়: ( 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");
কার্যত একই। বিড়ালছানা আলিয়াস দ্বিতীয় কোয়েরিতে কীভাবে স্পষ্টভাবে উল্লেখ করা হয়েছে তা নোট করুন।
ক্যোয়ারওভার সিরিজ - পর্ব 2: অ্যান্ড্রু হুইটেকারের দ্বারা বুনিয়াদি এবং যোগদান একটি খুব ভাল ব্যাখ্যা দেয়:
সারসংক্ষেপ:
IQueryOverদুই ধরণের পরামিতি সহ একটি জেনেরিক টাইপTRootএবংTSubType.SelectTRootঅন্যান্য কোয়েরিওভার পদ্ধতিতে কাজ করার সময় এটি পরিচালনা করেTSubType।TRootআপনি যেমন কোনও ক্যোয়ারী তৈরি করছেন ঠিক তেমনই থাকে, তবেTSubTypeআপনি যখন ব্যবহারে যোগদান করেন তখন পরিবর্তন হয়JoinQueryOverJoinQueryOverএবংJoinAliasআপনার প্রশ্নের সাথে যোগ দেয়।JoinAliasপরিবর্তন হয় নাTSubType, কিন্তুJoinQueryOverহয়।- আপনি বৈশিষ্ট্য যে অন্তর্গত না উল্লেখ করতে যখন একটি ক্যোয়ারী বিল্ডিং alias লেখা ব্যবহার করতে পারেন
TRootবাTSubType
Kitten kittenAlias = null;এবংCat catAlias = null;তার আগে ঘোষণা করতে হবে । আমি এটিকে অগোছালো মনে করি, সুতরাংJoinAliasএটি প্রয়োজনীয় না হলে আমি ব্যবহার করি না ।