سؤال

أحاول إنشاء تطبيق قاعدة بيانات بسيط يتتبع قروضًا من أنواع مختلفة من المعدات باستخدام Nhibernate بطلاقة و SQLite. ومع ذلك ، عندما أحاول إنشاء بنية قاعدة البيانات مع SchemaExport للاستخدام في اختبار الوحدة ، لم يتم إنشاء مفاتيح أجنبية للعلاقات واحدة إلى كثير.

هنا أنا Equipment كيان:

public virtual int Id { get; set; }

public virtual EquipmentType Type { get; set; }

public virtual int StockId { get; set; }

وها هي تعييناتي ل Equipment:

Id(x => x.Id);
References(x => x.Type);
Map(x => x.StockId);

يتم إنشاء SQL بشكل صحيح ، باستثناء عدم وجود مفاتيح أجنبية:

create table "Equipment" (
       Id integer,
       StockId INTEGER,
       Type_id INTEGER,
       primary key (Id)
    )

هل من الممكن SchemaExport لإنشاء مفاتيح أجنبية عند استخدام قاعدة بيانات SQLite؟

شكرًا.

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

المحلول

لقد ضربت نفس المشكلة.

لم يدعم SQLite في البداية المفاتيح الأجنبية (ميزة تم تقديمها في 3.6.19) حتى لا يعرف تطبيق Nhibernate SQLitedialect المفاتيح الأجنبية.

نظرًا لأن SQLite لا يدعم إضافة قيود من خلال جدول Alter ، فقط من خلال إنشاء معلمات الجدول ، لا يتم استخدام مفتاح NHIBERNATE الافتراضي.

هناك حادثة تم تسجيلها على nhjira https://nhibernate.jira.com/browse/nh-2200

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