9

मैं Package Manager Console में Scaffold-DbContext आदेश का उपयोग बनाने के लिए और एक ही अस्तित्व में SQL सर्वर डेटाबेस के लिए संदर्भ और संस्थाओं को फिर से बनाना:एंटीटी फ्रेमवर्क कोर में बहुवचन डीबीसेट संपत्ति नामों के साथ डीबीकॉन्टेक्स्ट को कैसे मचान करें?

Scaffold-DbContext -provider EntityFramework.MicrosoftSqlServer -connection "my connection string" 

यह एक बात को छोड़कर पूरी तरह से काम करता है: DbSet के विलक्षण रूप में संपत्ति के नाम है:

public partial class MyDbContext : DbContext 
{ 
    public virtual DbSet<Request> Request { get; set; } 
    public virtual DbSet<RequestHeader> RequestHeader { get; set; } 
} 

मैं इन नामों को बहुवचन रूप (Requests इत्यादि) में पसंद करता हूं। वेब सर्च के अलावा मैंने कमांड सिंटैक्स की जांच की:

get-Help Scaffold-DbContext -detailed 

और इस व्यवहार को बदलने के लिए कुछ भी नहीं मिला।

<packages> 
    <package id="EntityFramework.Commands" version="7.0.0-rc1-final" targetFramework="net46" /> 
    <package id="EntityFramework.Core" version="7.0.0-rc1-final" targetFramework="net46" /> 
    ... 
</packages> 

कैसे pluralize को DbSet नाम जब मचान: यहाँ मेरी packages.config है?

अद्यतन 2017-04: डीबी पहले मचान बहुवचन अब एंटीटी फ्रेमवर्क कोर 1.1 में संभव है। विवरण के लिए नीचे मेरे answer पढ़ें।

+0

पढ़ा [यह] (https://empiricalthoughts.wordpress.com/2015/09/11/entity-framework-7-डेटा- मॉडेल-pluralization-part-12/) और [यह] (https: // empiricalthoughts.wordpress.com/2015/09/12/entity-framework-7-डेटाबेस- मॉडल-pluralization-part-22/) – dotctor

+0

डॉक्टर - यह अब समर्थित नहीं है, लेकिन ऐसा कुछ आरटीएम – ErikEJ

+0

के बाद दिखाई देगा मेरा उत्तर देखें यहां: stackoverflow.com/a/47410837/869033 –

उत्तर

1

आरसी 1 के रूप में ईएफ 7 में बहुवचनीकरण समर्थित नहीं है। यह और ईएफ 7 मचान की अन्य सीमाओं को यहां ट्रैक किया जा रहा है: https://github.com/aspnet/EntityFramework/issues/4038

+0

अब यह समर्थित है: https://stackoverflow.com/a/47410837/869033 –

0

ईएफ कोर 1.1 में बहुवचन संभव है। रोवन मिलर described in its blog के रूप में, आपको इन्फ्लिक्टर स्थापित करने और मचान के दौरान बहुवचन को नियंत्रित करने के लिए IDesignTimeServices लागू करने की आवश्यकता है। हालांकि, इसके बारे में पता होना:

हम * .internal नामस्थान में इन सेवाओं रख दिया और सही किसी भी बिंदु पर एपीआई को तोड़ने के लिए सुरक्षित रखते हैं।

इसलिए इसीलिए एक पूर्ण कोड उदाहरण कॉपी नहीं किया गया है। यह उत्तर उसी कारण से स्वीकार नहीं किया जाता है - जब तक हम स्थिर API प्राप्त नहीं करते हैं, तब तक मैं प्रतीक्षा करना पसंद करता हूं।

एक और मुद्दा आपको विचार करना चाहिए - यह समाधान प्रदाता-निर्भर है। यह SQL सर्वर के साथ ठीक काम करता है (मैंने इसका परीक्षण किया)। एक और डीबीएमएस प्रदाता अभी तक इस एपीआई का समर्थन नहीं कर सकता है। उदाहरण के लिए, नवीनतम Npgsql.EntityFrameworkCore.PostgreSQL 1.1.0 मचान पर विफल रहता है जब कस्टम IDesignTimeServices का उपयोग किया जाता है।

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