আমি ড্যাপারের মতো তথাকথিত "মাইক্রো ওআরএম" সন্ধান করছি এবং (নেটওয়েট 4.0 এর উপর নির্ভর করে কিছুটা হলেও) প্রচুর পরিমাণে আমাদের বর্তমান সিস্টেমের পর থেকে পূর্ণ বর্ধিত ওআরএম এর চেয়ে কাজের ক্ষেত্রে এটি প্রয়োগ করা আরও সহজ হতে পারে সঞ্চিত পদ্ধতিতে অত্যন্ত নির্ভরশীল এবং এনএইচবারনেট বা ইএফ এর মতো কোনও ওআরএমের সাথে কাজ করার জন্য উল্লেখযোগ্য রিফ্যাক্টরিংয়ের প্রয়োজন হয়। পূর্ণ বৈশিষ্ট্যযুক্ত ওআরএম এর মধ্যে এর একটি ব্যবহারের সুবিধা কী? এটি কোন ডেটাবেস সংযোগ প্রায় শুধু একটি পাতলা স্তর এখনও বাহিনী আপনি যদি কাঁচা এসকিউএল লিখতে মত মনে হয় - সম্ভবত আমি ভুল কিন্তু আমি সবসময় ORMs জন্য কারণ বলা হয়েছে যাতে আপনি করা হয়নি প্রথম স্থান আছে , এটা এসকিউএল লিখতে স্বয়ংক্রিয়ভাবে উত্পন্ন হতে পারে; বিশেষত একাধিক টেবিলের সাথে টেবিলের মধ্যে ম্যাপিং সম্পর্ক এবং ম্যাপিং সম্পর্কের জন্য যা খাঁটি এসকিউএল করতে ব্যথা হয় তবে একটি ওআরএম দিয়ে তুচ্ছ।
উদাহরণস্বরূপ, ডাপারের উদাহরণের দিকে তাকানো:
var connection = new SqlConnection(); // setup here...
var person = connection.Query<Person>("select * from people where PersonId = @personId", new { PersonId = 42 });
কোনও হ্যান্ডরোলড ADO.NET ডেটা স্তর ব্যবহার করার চেয়ে আলাদা কীভাবে, আপনাকে কমান্ডটি লিখতে হবে না, প্যারামিটারগুলি সেট করুন এবং আমি মনে করি কোনও বিল্ডার ব্যবহার করে সত্ত্বার মানচিত্রটি ফিরে আসবে। দেখে মনে হচ্ছে আপনি এমনকি এসকিউএল স্ট্রিং হিসাবে কোনও সঞ্চিত প্রক্রিয়া কলটি ব্যবহার করতে পারেন।
মাইক্রো ওআরএম ব্যবহার করতে ইচ্ছুক হয়ে ওঠার জন্য এখানে কী রয়েছে এমন অন্যান্য স্পষ্টত সুবিধা রয়েছে? আমি ADO.NET ব্যবহারের "পুরাতন" পদ্ধতিতে কীভাবে কিছু কোডের কয়েকটি লাইন বাদে কীভাবে কিছু সংরক্ষণ করছে তা আমি সত্যিই দেখছি না - আপনাকে কী এসকিউএল কার্যকর করতে হবে তা নির্ধারণ করার জন্য আপনাকে এখনও লিখতে হবে (যা লোমশ হতে পারে) এবং আপনাকে এখনও টেবিলের মধ্যে সম্পর্কের মানচিত্র রাখতে হবে (যে অংশটি IMHO ORMs সবচেয়ে বেশি সাহায্য করে)।
var dog = connection.Query<Dog>("select Age = @Age, Id = @Id", new { Age = (int?)null, Id = guid });
এবং পরে dog.First().Age
বৈশিষ্ট্য অ্যাক্সেস করার জন্য।