5

मैं माइक्रोसॉफ्ट एसक्यूएल सर्वर की बजाय बैकएंड पर PostgreSQL का उपयोग करने के लिए हमारे डॉटनेट कोर प्रोजेक्ट को अपडेट कर रहा हूं और डेटा तालिका के रूप में GUID का उपयोग करने वाली दो तालिकाओं वाली स्थिति को हिट करता हूं।मैं PostgreSQL (npgsql) के लिए डेटाबेस उत्पन्न करने के लिए एंटीटी फ्रेमवर्क को कैसे कॉन्फ़िगर कर सकता हूं?

त्रुटि

Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.InvalidOperationException: Property CommentID on type is a database-generated uuid, which requires the PostgreSQL uuid-ossp extension. Add .HasPostgresExtension("uuid-ossp") to your context's OnModelCreating. 

एक छोटे से Googling के बाद मैं तो एहसास हुआ कि मैं UUID एक्सटेंशन सक्षम करने के लिए है (यकीन नहीं इस किसी भी तरह से स्वचालित है, तो किया जा सकता है) और फिर सफलतापूर्वक pgAdmin में एक UUID उत्पन्न।

CREATE EXTENSION "uuid-ossp"; 
SELECT uuid_generate_v4(); 

दुर्भाग्यवश मेरा डॉटनेट प्रोजेक्ट अभी भी एक ही त्रुटि के साथ शिकायत कर रहा है। मैं में त्रुटि में देखता हूं। हेसपोस्टग्रेस एक्सटेंशन ("यूयूआईडी-ओएसएसपी") ऑनमोडेल क्रिएटिंग पर और मैंने कई स्पॉट्स में कोशिश की है लेकिन यह पता लगाना प्रतीत नहीं होता कि इसे विशेष रूप से जोड़ा जाना चाहिए।

+0

HasPostgresExtension() अपने संदर्भ के OnModelCreating में रखा जा रहा है, के रूप त्रुटि का कहना है की जरूरत है: यहाँ क्या OnModelCreating अन्य लोगों को इस आज़माने के लिए की तरह लग रहा का एक टुकड़ा है। यदि यह आपके संदर्भ के प्रासंगिक भाग पोस्ट नहीं करता है। ध्यान दें कि इस काम के लिए आपको Npgsql अस्थिर फ़ीड से कम से कम संस्करण 1.0.0-rc3-ci-39 का उपयोग करना होगा। –

उत्तर

6

शै के निर्देश के अनुसार - Npgsql के नवीनतम संस्करण को अपडेट करने के बाद, यूयूआईडी एक्सटेंशन त्रुटि अब खत्म हो गई है।

protected override void OnModelCreating(ModelBuilder builder) 
    { 
     base.OnModelCreating(builder); 

     builder.HasPostgresExtension("uuid-ossp"); 
    } 
संबंधित मुद्दे

 संबंधित मुद्दे