سؤال

أنا جديد في Limbernate، وقد بدا جوانب التكوين من ذلك بشكل كبير بالنسبة لي. أمس، صادفت ميزات رسم الخرائط التلقائية من أحمق بطلاقة وأعجبت بشكل مناسب.

لتثقيف نفسي، أعطيت نفسي التحدي المتمثل في محاولة "المشروع الأول" (http://wiki.fluentnibernate.org/show/gettingstartedfirstproject.) استخدام الأتمتة والاتفاقيات. يجب أن أعترف لعدم وجود الكثير من الحظ.

لفصل خطواتي:

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

Q1) حاولت كتابة تطبيق IhasmanyConvention باستخدام وزارة الخارجية كمثال ولكن طريقة Weatkeycolumn لا تبدو موجودة (أفترض ذلك لأنني قمت بتنزيل بناء الأمس بحيث تغير التصميم منذ كتابة المقالة). كيف يمكنني تصحيح هذا؟

لقد قمت أيضا ببعض التغييرات الطفيفة في طبقة الكيانات في المثال كما اعتقدت أن هذا سيجعل الأمر أسهل، وكانوا على إعادة تسمية المتاجرون إلى المتاجر (Product.cs) والموظفين للموظفين (Store.cs).

يبدو رمزي مثل هذا:

var cfg = Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2005
    .ConnectionString(c => c
        .Is(connectionString)))
.Mappings(m => m.AutoMappings.Add(
                AutoPersistenceModel.MapEntitiesFromAssemblyOf<Store>()
                    .Where(t => t
                        .Namespace == "FluentNHibernateTesting.Entities")
                        .ConventionDiscovery.Setup(c => c.Add<ForeignKeyConvention>())
                ))
.BuildSessionFactory();

ثم أحاول إضافة المتاجر والمنتجات والموظفين إلى قاعدة البيانات وفقا لمثال البدء. الاستثناء الذي أحصل عليه يحدث على الالتزام وهو:

يشير الكائن إلى مثيل عابر غير محفوظ - احفظ المثيل العابر قبل التنظيف. النوع: FluentniBernatesting.Endities.Mployee، كيان: FluentniBernateTing.Endities.employee

Q2) كيف يمكنني حل هذه المشكلة؟ أفهم (من قراءتي المحدودة) أنه يحتوي على شيء ما له علاقة بإعداد عناصر Cascade من علاقات الكائنات بشكل صحيح ولكنه حظي بعض الشيء حول كيفية الذهاب حول هذا الاستخدام بشكل فعال باستخدام التعيين التلقائي.

Q3) هل هناك تاريخ إصدار مستهدف للمشروع بطلاقة؟ أنا (كما أفترض أن العديد من الآخرين) يشعرون بأن هذه مبادرة ممتازة ولكنني أدرك استخدامها إلا إذا كانت في حالة مستقرة.

q4) المذكورة في العديد من المدونات التي تعمل بشكل مطرد نحو تكاسك الميزات في بطلاقة HBN.XML. هل هناك قائمة بهذه الميزات المفقودة في مكان ما من أجل المساعدات مع تقييم هذه الأداة واستخدامها؟

نقدر المساعدة مقدما.

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

المحلول

سألت جيمس غريغوري نفس الأسئلة في رسالة بريد إلكتروني إليه مباشرة. قدم هذا الاستجابة الممتازة.

'مرحبا بول،

1) Keycolumnnames هو ما أنت بعد.

2) يمكنك القيام بهذا من 3 طرق. قم بإعداد IhasmanyConvention لإجراء جميع العلاقات عالميا، واستخدام مكالمة fortypesthativefrom، أو تجاوز السيارات.

3) نحن في الاختبار الخاص إصدار 1.0 لدينا الآن. غير متأكد مما إذا كنا سنحصل على نسخة تجريبية عامة أو مباشرة إلى الإفراج، ولكن يجب أن يحدث ذلك في الأسابيع القليلة المقبلة.

4) من غير المرجح للغاية أن نكون ميزة كاملة كاملة مع أحذية، ليس لدينا رغبة في أن تكون. العديد من ميزات NH هي غيرية للغاية، ولا توجد فائدة ضئيلة لتنفيذها. اعتبارا من 1.0 سيكون هناك عدد قليل جدا من الميزات التي لا نؤيدها أن الناس يستخدمون بانتظام. أستطيع أن أقول بثقة أن جميع سيناريوهات التعيين الشائعة التي يتم تناولها، وإذا كان هناك أي شيء لا يمكنك دائما التراجع دائما إلى HBM لهذه الحالة.

لاستبدال أي تعليقات أي تعليقات أن مستنداتنا قديمة قديمة، سيتم إصلاح الوثائق لمدة 1.0؛)

جوامع'

شكرا جيمس.

نصائح أخرى

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

يجب أن تكون قادرا على الحصول على نسخة عمل من أحمق بطلاقة من مستودع SVN الآن. كما قاموا بتركيب ثنائيات.

لا يوجد حاليا أي إصدارات رسمية من أحمق بطلاقة. هذا ليس انعكاس للجودة، ولكن من معدل التغيير السريع لدينا. يتم تحديث قاعدة التعليمات البرمجية الخاصة بنا يوميا، مما يجعل إخراج رسمي يطلق مسعى دائم حتى نحقق تكافؤ ميزة مع نواة Nibernate. معظم الميزات العادية التي تستخدمها يوما بعد يوم جاهزة.

http://fluentnibernate.org/downloads.

المشكلات الحالية هنا:

http://code.google.com/p/fluent-nibernate/issues/list.

لا يبدو أي منهم قتلة الصفقة. أعتقد أنه يعتمد على مقدار الوقت الذي تضطر إليه التجربة.

يشير الكائن إلى مثيل عابر غير محفوظ - احفظ المثيل العابر قبل التنظيف. النوع: FluentniBernatesting.Endities.Mployee، كيان: FluentniBernateTing.Endities.employee

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

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