سؤال

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

فئة واحدة "المال" له قيمة وعملة. القيمة مزدوجة والعملية هي مفتاح أجنبي لجدول قائمة بالعملات.

يمكن أن تظهر الأموال كنوع على العديد من الكائنات / الجداول، لذلك خلقت ive مركبة مركبة لتعيينها مع تعيين قياسي إلى العملة. هذا يعمل بشكل جيد، ولكن بالنسبة لحياة لي لا أستطيع الحصول على علاقة العملة بالحمل كسول من أحمق. نستخدم بطلاقة، لكنني سعيد لأي مؤشرات في HBM.

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

المحلول

يبدو أنني بحاجة إلى استخدام المكونات، لا يمكن أن نرى كيفية إضافة مراجع من تلك أو المركب المركبة، على الرغم من: /

https://forum.habernate.org/viewtopic.php؟f=1&t=947719&start=0.

https://web.archive.org/web/20090227235136/http:/blogs.hopernatingrhinos.com/nibernate/archive/2008/013/a-Fluent-Interface-To-Nibernate---Part-2- - value.aspx.

http://wiki.fluentnibernate.org/show/standardmapprapomponents.

تحديث

لقد قمت بإعادة جولة هذه المشكلة باستخدام Compositeuserype وإعداد نقطة النهاية الوكيل على عنوان الكيان الموجه Nullsafeet () الطريقة:

public virtual object NullSafeGet(IDataReader dr, string[] names, ISessionImplementor session, object owner)
{
    if (dr == null)
    {
        return null;
    }

    Money value = new Money()
    {
        Value = (double)NHibernateUtil.Double.NullSafeGet(dr, names[0], session, owner)
    };

    string entityName = session.BestGuessEntityName(value.Currency);
    value.Currency = (CurrencyDetails)session.InternalLoad(entityName, (object)DEFAULT_CURRENCY_ID, false, false);

    return value;
}

لست متأكدا مما إذا كانت هذه هي الطريقة الموصى بها للقيام بذلك، لكنها تعمل :)

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