SQLite

5

का उपयोग कर फ्लुएंट एनएचबर्ननेट में स्कीमाएक्सपोर्ट के साथ विदेशी कुंजी मैं एक साधारण डेटाबेस एप्लिकेशन बनाने का प्रयास कर रहा हूं जो फ्लुएंट एनएचबेर्नेट और SQLite का उपयोग करके विभिन्न प्रकार के उपकरणों के ऋणों का ट्रैक रखता है। हालांकि, जब मैं इकाई परीक्षण में उपयोग के लिए SchemaExport के साथ डेटाबेस संरचना उत्पन्न करने का प्रयास करता हूं, तो एक से कई रिश्तों के लिए विदेशी कुंजी नहीं बनाई जाती हैं।SQLite

public virtual int Id { get; set; } 

public virtual EquipmentType Type { get; set; } 

public virtual int StockId { get; set; } 

और यहाँ Equipment के लिए मेरे मैपिंग हैं::

यहाँ मेरी Equipment इकाई है

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

एसक्यूएल सही ढंग से उत्पन्न होता है विदेशी कुंजी की कमी के अलावा,:

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

क्या यह SchemaExport जेनेरा के लिए संभव है एक SQLite डेटाबेस का उपयोग करते समय ते विदेशी कुंजी?

धन्यवाद।

उत्तर

3

मैंने एक ही समस्या को मारा।

SQLite प्रारंभ में विदेशी कुंजी (3.6.1 9 में पेश की गई सुविधा) का समर्थन नहीं करता था, इसलिए NHibernate SQLiteDialect कार्यान्वयन विदेशी कुंजी के बारे में नहीं जानता है।

चूंकि SQLite अल्टर टेबल के माध्यम से बाधाओं को जोड़ने का समर्थन नहीं करता है, केवल तालिका पैरामीटर बनाने के माध्यम से, NHibernate की डिफ़ॉल्ट विदेशी कुंजी निर्माण का उपयोग नहीं किया जाता है।

एनएचजेआईआरए https://nhibernate.jira.com/browse/NH-2200

पर एक घटना लॉग है