তাই আমি টিডিডি এর মাধ্যমে ডেটা অ্যাক্সেস স্তর তৈরি করেছি এবং কিছুটা উদ্বেগের কাছে পৌঁছেছি। আমি বরং ভুল পথটি শুরু করব না, তাই আমি অনুভব করেছি যে আমি আপনাকে বলছি যে আমার চিন্তাভাবনা একটি পরিষ্কার স্থাপত্যের সাথে সামঞ্জস্যপূর্ণ কিনা।
আমার ডেটা অ্যাক্সেস লেয়ারের মধ্যে পদ্ধতিগুলি (সংক্ষেপে ডাল), খুব সহজ। তারা ডাটাবেসে সঞ্চিত পদ্ধতির সাথে সামঞ্জস্যপূর্ণ (জিনিসগুলিকে পরিষ্কার রাখার জন্য এটিতে কল করার কোনও উপায় নেই) এবং এতে প্রক্রিয়াগুলি একই পরামিতি ধারণ করে। এরপরে তারা কেবল ডাটাবেসের সাথে সংযুক্ত হয় এবং কোয়েরির ফলাফলটি দেয়। একটি উদাহরণ এখানে:
public int DeleteRecord(int recordId)
{
recordId.RequireThat("recordId").NotZeroOrLess();
List<SqlParameter> parameters = new List<SqlParameter>();
parameters.Add(new SqlParameter { ParameterName = "@RecordId", SqlDbType = SqlDbType.Int, Direction = ParameterDirection.Input, Value = recordId});
return this.ExecuteNonQuery("DeleteRecord", parameters.ToArray());
}
এটি এই ধরণের পদ্ধতির জন্য নিখুঁতভাবে কাজ করে কারণ আমি ফলাফলের সেট দিয়ে অর্থবহ কিছু করছি না। আমি কেবল কমান্ডটি কাজ করেছে তা নিশ্চিত করতে চাই, সুতরাং আমি অ-কোয়েরির ফলাফলটি ফিরিয়ে দেব, যা কেবলমাত্র সারিগুলিতে প্রভাবিত এবং আমি এই নম্বরটি ব্যবহার করে যুক্তিটি যাচাই করতে পারি।
তবে, অন্য ডাল পদ্ধতিতে বলুন, আমি একটি রেকর্ড লোড করতে চাই। আমার লোড পদ্ধতিটি selects
একগুচ্ছ টেবিলগুলির বিরুদ্ধে কার্যকর হবে এবং একটি ফিরিয়ে দেবে DataSet
, তবে আমি লড়াই করে যাচ্ছি যে আমার ডালটি ব্যবহার করে পদ্ধতিটির মধ্যে বিজনেস অবজেক্ট তৈরি করা উচিত DataSet
, বা আমার ব্যবসায়িক বিষয়গুলিতে নিজেরাই যদি কেবল একটি Load()
পদ্ধতি পায় যা পায় DataSet
ডাল থেকে এবং তারপরে মূলত নিজেকে পূরণ করে।
ডএল দিয়ে এটি করার ফলে ব্যবসায়িক অবজেক্টগুলিতে কম যুক্তি দেখা দেবে (যদিও এটি কেবলমাত্র যুক্তিযুক্ত নির্বাচন করা হয়, এটি এখনও যুক্তিযুক্ত) তবে ড্যালকে কিছুটা ভিড় করে এমন মনে হবে যে এটি সত্যিই এমন কিছু করছে যা এটি করা উচিত নয় ' করছ না
তোমরা কি ভাবো?