سؤال

وأريد استخدام DDD في مشروع جديد ونموذج دروسي أولا، ثم توليد مخطط قاعدة البيانات على أساس مكتبة الفئة. خطتي هي أن تفعل هذا مع NHibernate hbm2ddl SchemaExport الأداة.

والمشكلة هي أنني لا يمكن الحصول على SchemaExport للعمل بسبب وجود مشكلة غريبة اللحاق 22 أنها يضعني فيها وSchemaExport يتطلب كائن Configuration في حد ذاته يتطلب ملف تكوين NHibernate صحيح وكذلك مجموعة من قواعد البيانات تعيينات.

والصيد-22 هنا هو أنه عندما أفعل تكوين ()، فإنه يشكو "Could not determine the name of the table for entity 'MyEntity'; remove the 'table' attribute or assign a value to it." لذا فإن طريقة Configure() يتطلب الجدول في الوجود، في حين يفترض أن SchemaExport لإنشائه بناء على Configuration أنني لا يمكن أن تخلق ل لا لا وجود الجدول.

وهكذا، كيف على الأرض أنا من المفترض أن إنشاء Configuration NHibernate صالحة تحتوي على تعيينات اللازمة لSchemaExport أن تفعل في الواقع شيئا مفيدا دون الحاجة رمي Configure() ويشكو أنه لا يمكن العثور على الجداول التي سيتم إنشاؤها باستخدام SchemaExport؟ هل هناك "واسطة" يمكنني تعيين الكائن Configuration في ذلك لن تحقق قاعدة البيانات لوجود جداول معينة، أم أن هناك شيئا آخر يجب أن أفعل؟

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

المحلول

ويمكنك نشر ملف التكوين الخاص بك؟

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

    var cfg = new Configuration();
    cfg.Configure();
    var schema = new SchemaExport(cfg);
    schema.Create(true, true);

وهذا من شأنه أيضا دفع النصي إلى وحدة التحكم بالنسبة لك، حتى تتمكن من رؤية ما ولدت SQL ضد ديسيبل.

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