كيف يمكن تعيين قائمة السلاسل إلى كيان باستخدام NHibernate?

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

  •  09-06-2019
  •  | 
  •  

سؤال

لدي جدولين في قاعدة البيانات الخاصة بي:المواد والعلامات

العلامات الجداول تتكون من ArticleID (مفتاح خارجي) و علامة (varchar).

الآن أنا بحاجة إلى خريطة مقالات الكلمات إلى للقراءة فقط على جمع المادة الكيان ، إما باستخدام IList فئة أو ReadOnlyCollection العلامات.

لقد استشار NHibernate المواد المرجعية, ولكن أنا لا يمكن أن يبدو لمعرفة متى يمكن استخدام مجموعة الحقيبة الأخرى Nhibernate مجموعات.رأيت أمثلة باستخدام ايست جمع ، ولكن أنا حقا لا أحب أن التعادل كيان بلدي الطبقات إلى NHibernate نوع.

كيف يمكن أن أفعل رسم الخرائط في NHibernate?

تحرير:انتهى بي الأمر باستخدام <bag> بدلا من ذلك, كما أنها لا تتطلب فهرس:

<bag name="Tags" table="Tag" access="nosetter.camelcase" lazy="false">
  <key column="ArticleId" />
  <element column="Tag" type="System.String" />
</bag>
هل كانت مفيدة؟

المحلول

نوع من جمع في رسم الخرائط يعتمد على كيف تريد أن تمثل مجموعة في التعليمات البرمجية.إعدادات الخريطة مثل ذلك:

  • على <list> الخرائط مباشرة إلى IList.
  • على <map> خرائط مباشرة أن يقع.
  • على <bag> خرائط إلى IList.وهو لا يتوافق تماما مع IList واجهة لأن إضافة() الطريقة ليست مضمونة العودة الصحيحة مؤشر.كائن يمكن أن تضاف إلى <bag> دون تهيئة IList.تأكد إما إخفاء IList من المستهلكين من API الخاص بك أو جعله موثقة توثيقا جيدا.
  • على <set> خرائط إلى Iesi.مجموعات.ايست.أن واجهة هو جزء من Iesi.مجموعات الجمعية وزعت مع NHibernate.

حتى إذا كنت ترغب في IList إلى أن تعاد ، ثم يمكنك استخدام <list> رسم الخرائط.في حالتك ربما الخريطة باستخدام <list> رسم الخرائط.

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