كيفية كتابة بيانات الطبقة التي تدعم استعلامات بمعلمات

StackOverflow https://stackoverflow.com/questions/613129

  •  03-07-2019
  •  | 
  •  

سؤال

أنا السابق الكلاسيكية مبرمج ASP و في بعض الأحيان PHP مبرمج كتابة أول ASP.NET التطبيق.أنا المحبة تحسنت كثيرا ADO.NET وظائف لكني الشعور بالحاجة إلى كتابة بيانات الصف.جزئيا أريد أن توحيد قانون في الواقع أن يتفاعل مع قاعدة البيانات ، وجزئيا أريد أن تقلل ما يشعر مثل التكرار.

بيانات بسيطة من الدرجة ليس من الصعب القيام به, ولكن أنا باستخدام استعلامات بمعلمات باعتبارها واحدة من التدابير الأمنية.أنا تكافح مع كيفية إدماج هذه الفئة.كتبت الدالة لإرجاع نوع بيانات عمود في قاعدة البيانات عن طريق تمرير في الجدول و اسم العمود ، ولكن لا أستطيع التفكير في وسيلة قوية للحصول على الجدول و اسم العمود من استعلام SQL.

تصميمي للفئة كان لديك استفسار() وظيفة اختيار و تنفيذ() وظيفة إدراج/تحديث/حذف.(لا تعارض وجود المزيد من الوظائف العامة ، ولكن لم أكن أريد أن أستبق الأحداث.) كل الوظائف اتخاذ سلسلة SQL و SortedList للمعلمات.قد يكون من الممكن الحصول على اسم العمود من خلال إيجاد اسم المعلمة في سلسلة SQL وتبحث أمام علامة المساواة.وبالمثل ، ينبغي أن تكون بسيطة إلى حد ما للحصول على اسم الجدول عند الاستعلام إدراج أو تحديث أو حذف ، لأنك تعمل فقط مع طاولة واحدة في وقت واحد.هو قلق كبير اختيار, لأنه قد يكون هناك واحد أو أكثر من ينضم الداخلية يختار ، إلخ.

أنا تسير في الاتجاه الخاطئ ؟ أي شيء أنا لا أفكر من الذي يمكن أن يجعل حياتي أسهل أو أصعب ؟ أحد كتب الطبقة عن هذا في أي لغة يمكن أن نقدم بعض النصائح ؟

هل كانت مفيدة؟

المحلول

ولا إعادة اختراع العجلة. ننظر إلى nHibernate أو <وأ href = "http://msdn.microsoft.com/en -US / مكتبة / bb425822.aspx "يختلط =" نوفولو noreferrer "> LINQToSQL (أو <وأ href =" http://msdn.microsoft.com/en-us/library/bb386964.aspx "يختلط = "نوفولو noreferrer"> LINQToEntities ) لتلبية الاحتياجات الخاصة بك ORM.

نصائح أخرى

هل الثاني الدعوة لايجاد عجلة مجربة ومختبرة أن يعمل بالنسبة لك، خاصة إذا كان هذا هو غزوة الأولى في ASPNET ... سيكون هناك الكثير آخر لإبقاء كنت مشغولا.

هل إضافة اقتراح ل دون سرعة الصوت ، ربما كان أخف قليلا من nHibernate، ولكن ذلك يعتمد حقا على طبيعة المشروع، وكلاهما أدوات عظيمة، ولقد أنقذني أشهر من العمل خلال السنوات القليلة الماضية على حد سواء.

أعتقد بما أن هذه هي أول تجربة في ASP.NET لك يستحسن أن ننظر إلى Linq to SQL.هل بعض الدروس لذلك يمكنك التعود على كيف يعمل قبل محاولة أي رمز استعلامات Linq.

الأسباب الوحيدة يمكن استخدام Linq to SQL في الحالة سيكون إذا كنت لا تستخدم SQL Server (أو بحاجة إلى دعم أخرى DBs سواء الآن أو في المستقبل) أو لا يمكنك استخدام .NET framework 3.5 وقت التشغيل لسبب ما.

حظا سعيدا

ويبدو لي مثل الخاص بك "الطبقة قاعدة بيانات بسيطة" يختبئ الكثير من التفاصيل من الفئات التي تحتاج إلى استخدامها.

ولقد الطبقات التي تحتوي على SqlCeEngine وفضح أساليب مثل "LookupDescription (قانون سلسلة)" مكتوبة ... وأعتقد أن هذا النوع من التصميم هو شيء يجب عليك أن تبحث في. والنظر في النظر في LINQ. انها لديها الكثير لتقدمه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top