إرجاع البيانات من طبقة العمل إلى طبقة العرض التقديمي

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

  •  13-09-2019
  •  | 
  •  

سؤال

أنا أقوم بتطوير موقع ASP.NET 2.0. لقد قمت بإنشاء وصول بيانات وطبقات المنطق التجارية. الآن في طبقة العرض التقديمي، أعود إلى البيانات من طبقة العمل كمجموعة بيانات.

سؤالي هو ما إذا كان لاستخدام مجموعة بيانات أو مجموعة كائن (على سبيل المثال كائن فئة يمثل جدول الفئة في قاعدة البيانات الخاصة بي). لقد حددت جميع الطبقات التي يتم تعيينها إلى طاولات قاعدة البيانات (كائنات مشتركة). ولكن هناك مواقف أحتاج فيها إلى جميع السجلات من جدول الفئة في طبقة العرض التقديمي. أنا مجرد حيرة. ماذا علي أن أفعل؟

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

المحلول

لا تريد إرجاع مجموعات البيانات، فأنت ترغب في إرجاع الكائنات.

بشكل عام عندما يكون لديك طبقة وصول إلى البيانات وطبقة منطق أعمال، سترغب أيضا في الحصول على طبقة كيكة. ستكون طبقة الكيان في تدوين الذاكرة في مجموعة نتائج قاعدة البيانات. إذا قمت بإرجاع صف واحد من قاعدة البيانات، فأنت تقوم بتحميل كائن ENTITIY واحد. إذا قمت بإرجاع أكثر من صف واحد، فستحميل كيان لكل صف، وإرجاع مجموعة من الكيانات التي سيتم استهلاكها بواسطة طبقة العرض التقديمي.

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

نأمل أن يكون هذا مفيد بالنسبة لك.

نصائح أخرى

أود أن أوصي بالأشياء العائدة أو ienumerable / ilist الخ من الكائنات.

اعتمادا على وصول DB الخاص بك، يمكنك ملء قائمة كائنات الفئات يدويا أو باستخدام شيء مثل إطار كيان LinQ2SQL أو ADO.NET بسرعة كبيرة، وإذا كان ذلك مطلوبا ذاكرة التخزين المؤقت لهم.

لقد استخدمت كلتا الطريقتين اعتمادا على الموقف. إذا كنت بحاجة فقط لعرض البيانات من جدول في الشبكة، فإن الأسلوب DataSet (أو DataTable) ليس فظيعا لأنه إذا تمت إضافة الحقول إلى الجدول، فسوف تظهر تلقائيا في الشبكة ... على افتراض أنك ملء تلقائيا شبكة مع الأعمدة. أنظر إلى هذه الطريقة أكبر من الطريقة السريعة والقذرة.

لن أعود مجموعات البيانات على الإطلاق. أنت تقارن بإحكام خدمة لك قاعدة البيانات. في المستقبل عندما تتطور قاعدة البيانات، ستضطر لتغيير أي شيء يستخدم مجموعات البيانات. تريد إنشاء طبقة تجريدية بين قاعدة البيانات والخدمة.

سأذهب مع حل كائن / جمع. لذلك إذا كنت تعيد صف واحد من جدول، فسيكون لديك كائن واحد، إذا كنت تعيد عدة أشخاص تستخدم مجموعة عامة. ستجنب مجموعة عامة تتجنب ضرب الملاكمة / إلغاء تثبيت.

تحرير] يبدو أنني تعرض للضرب عليه [/ edit

يجب عليك إنشاء طبقة كيكة، وجود فصول تمثل كل جدول في قاعدة البيانات. ثم إرجاع قوائم تلك الفئات.

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