- সংযোগ পুলিং অন্যান্য ADO.NET অ্যাপ্লিকেশন হিসাবে পরিচালনা করা হয়। সত্তা সংযোগ এখনও traditionalতিহ্যগত সংযোগ স্ট্রিং সঙ্গে traditionalতিহ্যগত ডাটাবেস সংযোগ ব্যবহার করে। আমি বিশ্বাস করি আপনি যদি এটি ব্যবহার করতে না চান তবে আপনি সংযোগ স্ট্রিংয়ে সংযোগ পুলিংটি বন্ধ করতে পারেন। ( এসকিউএল সার্ভার সংযোগ পুলিং (ADO.NET) সম্পর্কে আরও পড়ুন )
- কখনও বৈশ্বিক প্রসঙ্গ ব্যবহার করবেন না। অবজেক্টকন্টেক্সট আইডেন্টিটি ম্যাপ এবং ওয়ার্কের ইউনিট সহ অভ্যন্তরীণভাবে বেশ কয়েকটি নিদর্শনগুলি প্রয়োগ করে। বিশ্বব্যাপী প্রসঙ্গ ব্যবহারের প্রভাব প্রতি প্রয়োগের ক্ষেত্রে আলাদা।
- ওয়েব অ্যাপ্লিকেশনগুলির জন্য অনুরোধ অনুযায়ী একক প্রসঙ্গ ব্যবহার করুন। ওয়েব পরিষেবাদির জন্য কল প্রতি একক প্রসঙ্গ ব্যবহার করুন। উইনফোর্মে বা ডাব্লুপিএফ অ্যাপ্লিকেশনটিতে ফর্ম প্রতি বা উপস্থাপক হিসাবে একক প্রসঙ্গ ব্যবহার করুন। কিছু বিশেষ প্রয়োজনীয়তা থাকতে পারে যা এই পদ্ধতির ব্যবহার করতে দেয় না তবে বেশিরভাগ পরিস্থিতিতে এটি যথেষ্ট।
যদি আপনি জানতে চান যে ডাব্লুপিএফ / উইনফর্ম অ্যাপ্লিকেশনটির একক অবজেক্টের প্রসঙ্গটি কীভাবে প্রভাবিত হয় তবে এই নিবন্ধটি পরীক্ষা করুন । এটি এনহাইবারনেট সেশন সম্পর্কে তবে ধারণাটি একই is
সম্পাদনা:
আপনি যখন ইএফ ব্যবহার করেন তখন ডিফল্টরূপে প্রতিটি সত্ত্বা প্রতিটি প্রসঙ্গে একবারে লোড করে। প্রথম ক্যোয়ারী সত্তার ইনস্ট্যাস তৈরি করে এবং এটি অভ্যন্তরীণভাবে সঞ্চয় করে। একই কী সহ সত্তার জন্য প্রয়োজনীয় যে কোনও পরবর্তী কোয়েরি এই সঞ্চিত উদাহরণটি প্রদান করে। যদি ডেটা স্টোরের মানগুলি পরিবর্তিত হয় তবে আপনি এখনও প্রাথমিক ক্যোয়ারী থেকে মান সহ সত্তাটি পান। একে আইডেন্টিটি ম্যাপ প্যাটার্ন বলা হয় । আপনি সত্তাটি পুনরায় লোড করতে বস্তুর প্রসঙ্গটি জোর করতে পারেন তবে এটি একটি একক ভাগ করা দৃষ্টান্তটি পুনরায় লোড করবে।
আপনি SaveChanges
প্রসঙ্গে কথা না বলা অবধি সত্তাটিতে করা কোনও পরিবর্তন স্থির থাকে না । আপনি একাধিক সত্তায় পরিবর্তন করতে এবং সেগুলি একবারে সঞ্চয় করতে পারেন। একে ইউনিট অফ ওয়ার্ক প্যাটার্ন বলা হয় । আপনি কোন সংশোধিত সংযুক্ত সত্তাটি সংরক্ষণ করতে চান তা নির্বাচন করে বলতে পারবেন না।
এই দুটি নিদর্শন একত্রিত করুন এবং আপনি কিছু আকর্ষণীয় প্রভাব দেখতে পাবেন। পুরো অ্যাপ্লিকেশনটির জন্য আপনার কাছে সত্তার একমাত্র উদাহরণ রয়েছে। সত্তার কোনও পরিবর্তন পুরো প্রয়োগটিকে প্রভাবিত করে এমনকি যদি পরিবর্তনগুলি এখনও অব্যাহত না থাকে (কমিট করা থাকে)। বেশিরভাগ সময়ে এটি আপনি চান তা নয়। মনে করুন যে ডাব্লুপিএফ অ্যাপ্লিকেশনটিতে আপনার একটি সম্পাদনা ফর্ম রয়েছে। আপনি সত্তার সাথে কাজ করছেন এবং আপনি জটিল সম্পাদনা বাতিল করার সিদ্ধান্ত নিয়েছেন (মান পরিবর্তন করা, সম্পর্কিত সত্তা যুক্ত করা, অন্যান্য সম্পর্কিত সত্তা অপসারণ ইত্যাদি)। কিন্তু সত্তা ইতিমধ্যে ভাগ করা প্রসঙ্গে পরিবর্তিত হয়েছে। তুমি কি করবে? ইঙ্গিত: আমি কোনও বাতিলচেনিজ বা পূর্বাবস্থায়িত সম্পর্কে জানি না ObjectContext
।
আমি মনে করি আমাদের সার্ভারের পরিস্থিতি নিয়ে আলোচনা করতে হবে না। একাধিক এইচটিটিপি অনুরোধ বা ওয়েব পরিষেবা কলগুলির মধ্যে কেবল একক সত্তা ভাগ করে নেওয়া আপনার অ্যাপ্লিকেশনটিকে অকেজো করে তোলে। যে কোনও অনুরোধ কেবল SaveChanges
অন্য অনুরোধ থেকে আংশিক ডেটা ট্রিগার এবং সংরক্ষণ করতে পারে কারণ আপনি তাদের সবার মধ্যে একক কাজের ভাগ করে নিচ্ছেন। এটিতে আরও একটি সমস্যা থাকবে - প্রসঙ্গ এবং প্রসঙ্গে সত্তাগুলির সাথে কোনও হেরফের বা প্রসঙ্গটি ব্যবহার করা একটি ডেটাবেস সংযোগ থ্রেড নিরাপদ নয়।
এমনকি কেবলমাত্র পঠনযোগ্য অ্যাপ্লিকেশনের জন্যও বিশ্বব্যাপী প্রসঙ্গটি ভাল পছন্দ নয় কারণ আপনি যতবারই অ্যাপ্লিকেশনটি অনুসন্ধান করবেন আপনি সম্ভবত তাজা তথ্য চান।