الحصول على سلسلة مجموعات في طبقة العرض
-
03-07-2019 - |
سؤال
نحن نعمل على نظام معلومات المستشفيات التي تتم كتابتها في C# باستخدام NHibernate إلى خريطة كائنات قاعدة البيانات.نمط MVC يستخدم لفصل منطق الأعمال من واجهة المستخدم.هنا هي المشكلة ،
كيف يمكنك الحصول على متغير الحجم مجموعة مختلفة من سلاسل UI ؟
على سبيل المثال Contact
الكائن الخاصية اسمه City
أن يحمل أي مدينة الاتصال الأرواح.في البلد أن التطبيق هو مكتوب على أكثر من 80 مدينة.كيف يمكن أن تكتب تلك المدن إلى مربع التحرير والسرد?(أو شبكة البيانات, الجداول, ...) في هذا المثال المدينة عدد ثابت.ليست هناك حاجة لإضافة مدينة أخرى لفترة طويلة.(إذا كانت المدينة قائمة التغييرات ، ترجمة ليست مشكلة)
على سبيل المثال Contact
الكائن عقار آخر اسمه FooBar
والذي من المتوقع أن يكون عقد 1000 مختلف سلسلة قيم هذه القيم سوف يتم اختيارها من مربع التحرير والسرد عن تلك الممتلكات.وهذه المجموعة يمكن زراعتها إذا كان المستخدمون يريدون.كيف يمكنك تحميل مربع التحرير والسرد مع هذه القيم ؟ (إذا كانت السلسلة قائمة ثابت كتب إلى مربع التحرير والسرد كائن ترجمة مشكلة)
لدي حلول مختلفة على النحو التالي
- كل قيم السلسلة بشكل ثابت كتب إلى مربع التحرير والسرد في التعليمات البرمجية أو مصمم
- الحصول على القيم من ملف المورد
- أكتب هذه القيم إلى ملف XML (في الواقع نفس أعلاه, ولكن لا حاجة إلى إعادة ترجمة)
- جعل
City
موضوع الحصول على القيم في قائمة منCITY
الجدول مع NHibernate - جعل الطبقة اسمه
StringHolder
التي لديهاType
وValue
مكان الإقامة.كل سلسلة القيم(بما في ذلكCity
وFooBar
) أن تكون مكتوبة في جدول واحد اسمهSTRINGHOLDER
.والحصول على تلك القيم مع مفتاح مثل "المدينة" أو "س" مع NHibernate.
أي واحد سوف تختار ؟ أو هل يمكن أن توحي لي واحد آخر ؟
شكرا جميعا
المحلول
إن المواقع التي هي في الواقع على وشك أن يستخدم أي شيء في قاعدة البيانات الخاصة بنا.إذا كانت البيانات "لا تستخدم حقا" ، ولكن مدن بحث المقدمة لجعل واجهة المستخدم أفضل ، ثم ملف XML الخيار ليست طريقة سيئة الذهاب أيضا.
قبل استخدامها ، أعني الأشياء مثل قائمة جميع emplyees في نيويورك وأشياء من هذا القبيل.إذا كان "ميتا البيانات" فقط ليتم عرضها اذهب الى الحلول التي من شأنها أن تتطلب أقل قدر من العمل أقل من المخاطر التي قد تكون خيار الملف.
نصائح أخرى
وأود أن التصويت على حل #4.هذا ما كنت قد فعلت دائما في حالات مماثلة.يبدو تماما مثل نظافة الحل.
كيف تشعر استخدام قائمة<string> للحصول على قائمة من المدينة ؟ تحميل قائمة السلاسل في الدال أو BL ثم تمر على واجهة المستخدم.
نفس الحل يجب أن تكون جيدة ل س القيم أيضا.
في حال كان لديك معرفات المرتبطة المدينة أو FooBar, أقول نيويورك و الرقمية ID في DB 1, ثم يمكنك استخدام keyvaluepair العلامة<TKey, TValue="">.مع الأدوية يمكنك إملاء ما يذهب البيانات في هذا keyvaluepair العلامة.اسم المدينة أو FooBar سلسلة القيمة يمكن أن تكون مفتاح رقمي الهوية يمكن أن تكون قيمة.
فقط 2 سنت.