জয়েন্টকুয়েরওভার এবং জয়েন্টআলিয়াসের মধ্যে পার্থক্য কী?


88

আমার জানা দরকার যে জয়েন্টকুয়েরওভার এবং জয়েন্টএলিয়াসের মধ্যে পার্থক্য কী এবং কখন ব্যবহার করতে হবে?

উত্তর:


108

কার্যত তারা একই কাজ করে, অন্য সত্তায় একটি সংযুক্তি তৈরি করে। পার্থক্য কেবলমাত্র তারা ফিরে আসে। জয়েনকুইয়ারওভার একটি নতুন কোয়েরিওভারকে রিটার্ন দেয় যার সাথে বর্তমান সত্তা সত্তা যোগ দেয়, এবং জয়েনআলিয়াস মূল কোয়েরিওভারকে রিটার্ন দেয় যার মূল সত্তা হিসাবে বর্তমান সত্তা রয়েছে।

আপনি যে কোনওটি ব্যবহার করুন ব্যক্তিগত স্বাদের বিষয়: ( 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");

কার্যত একই। বিড়ালছানা আলিয়াস দ্বিতীয় কোয়েরিতে কীভাবে স্পষ্টভাবে উল্লেখ করা হয়েছে তা নোট করুন।


7
মনে রাখবেন যে দ্বিতীয় উদাহরণে আপনাকে পূর্বের নামগুলি Kitten kittenAlias = null;এবং Cat catAlias = null;তার আগে ঘোষণা করতে হবে । আমি এটিকে অগোছালো মনে করি, সুতরাং JoinAliasএটি প্রয়োজনীয় না হলে আমি ব্যবহার করি না ।
ফোকা

এটি পরিষ্কার করার জন্য আপনাকে @ ফোকা ধন্যবাদ। আমি এটি মিস করেছি এবং ভাবছিলাম কেন এটি কাজ করে না।
মারিও ট্যাকেকে

12

ক্যোয়ারওভার সিরিজ - পর্ব 2: অ্যান্ড্রু হুইটেকারের দ্বারা বুনিয়াদি এবং যোগদান একটি খুব ভাল ব্যাখ্যা দেয়:

সারসংক্ষেপ:

  • IQueryOverদুই ধরণের পরামিতি সহ একটি জেনেরিক টাইপ TRootএবংTSubType
  • .SelectTRootঅন্যান্য কোয়েরিওভার পদ্ধতিতে কাজ করার সময় এটি পরিচালনা করে TSubType
  • TRootআপনি যেমন কোনও ক্যোয়ারী তৈরি করছেন ঠিক তেমনই থাকে, তবে TSubTypeআপনি যখন ব্যবহারে যোগদান করেন তখন পরিবর্তন হয়JoinQueryOver
  • JoinQueryOverএবং JoinAliasআপনার প্রশ্নের সাথে যোগ দেয়। JoinAliasপরিবর্তন হয় না TSubType, কিন্তুJoinQueryOver হয়।
  • আপনি বৈশিষ্ট্য যে অন্তর্গত না উল্লেখ করতে যখন একটি ক্যোয়ারী বিল্ডিং alias লেখা ব্যবহার করতে পারেন TRootবাTSubType
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.