12

मैं एएसपी.NET 5 और इकाई फ्रेमवर्क 7 का उपयोग कर मौजूदा डेटाबेस संरचना के लिए DbContext उत्पन्न करने का प्रयास कर रहा हूं। आश्चर्य की बात नहीं है कि इस आसानी से इसे कैसे किया जाए इसके आसपास बहुत सारे दस्तावेज नहीं हैं। इसके अतिरिक्त, मैं केवल संदर्भ को मचान करना चाहता हूं; ~ 900 टेबल हैं और मुझे केवल उनमें से कुछ के बारे में परवाह है, मुझे प्रत्येक के लिए मॉडल क्लास की आवश्यकता नहीं है।इकाई फ्रेमवर्क 7 डीबीकॉन्टेक्स्ट मचान

मैं कम से कम here और here निर्दिष्ट आदेशों का उपयोग कर रहा हूं।

  1. कहाँ उत्पन्न संदर्भ फ़ाइलें स्थित हैं:

    तो, मैं मैं दो प्रश्न हैं लगता है? मैं कमांड प्रॉम्प्ट में कमांड के साथ कमांड चलाता हूं, लेकिन कुछ और नहीं होता है। मुझे पता है कि मैं कम से कम सही जगह पर हूं क्योंकि मैं असमर्थित गुणों के साथ पुराना ईएफ 6 मॉडल जोड़ सकता हूं और यह मुझे एक त्रुटि देता है कि वे समर्थित नहीं हैं।

  2. क्या कोई प्रासंगिक मॉडल कक्षाओं के साथ केवल एक संदर्भ उत्पन्न करना संभव है?

+0

जब आप कहते हैं कि तुम उन आदेशों के साथ "छोटी लक" पड़ा है, क्या समस्या वास्तव में था? – DavidG

+0

@DavidG जब मैं प्रॉम्प्ट में कमांड चलाता हूं, तो मुझे कोई परिणाम नहीं मिलता है। कोई त्रुटि नहीं, लेकिन कोई सफलता नहीं। मेरी संदर्भ फ़ाइल खाली बनी हुई है और मुझे फाइल सिस्टम में कोई दूसरा जोड़ा नहीं गया है। – awh112

उत्तर

-3

मैं मौजूदा डेटाबेस से कोड-प्रथम का प्रयास करूंगा। आप इस तरह कुछ देखने के लिए अपनी संदर्भ कक्षा बना सकते हैं:

public class MyDbContext : DbContext { 

     public MyDbContext() 
      : base("connectionString") { 
      Database.SetInitializer<MyDbContext>(null); 
     } 

     public virtual DbSet<Table1> Table1s { get; set; } 

     public virtual DbSet<Table2> Table2s { get; set; } 

     ... 
} 

आप केवल उन तालिकाओं के लिए डीबीसेट्स शामिल कर सकते हैं जिन्हें आप चाहते हैं। आप आवश्यक मॉडल तैयार करते हैं (तालिका 1, तालिका 2, आदि) और मचान नियंत्रक और उन मॉडलों के विचार।

+0

शुभकामनाएं कि अगर आपको 100 टेबल मॉडल करने की ज़रूरत है तो! – DavidG

+0

सुझाव के लिए धन्यवाद! ऐसा लगता है कि जिस डेटाबेस में आप ऊपर संदर्भित कर रहे हैं वह System.Data है, जबकि मैं माइक्रोसॉफ्ट का उपयोग कर रहा हूं। डेटा और डाटाबेसफैक्ड ऑब्जेक्ट बेस बेस संदर्भ से बाहर निकला है, इसमें 'SetInitializer' विधि नहीं है। – awh112

+0

@ डेविड जी सौभाग्य से मुझे केवल उन लोगों में से 5 टेबलों को मॉडल करने की आवश्यकता है जो वहां हैं! – awh112

0

ईएफ 7 के लिए, अब आपको बेस के साथ प्रारंभ करने की आवश्यकता नहीं है, यह वास्तव में एक संकलक त्रुटि में परिणाम देता है। क्या आप इसे Microsoft EF7 starting docs.

आप नए

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) 
    { 
     // Visual Studio 2015 | Use the LocalDb 12 instance created by Visual Studio 
     optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=EFGetStarted.ConsoleApp;Trusted_Connection=True;"); 

     // Visual Studio 2013 | Use the LocalDb 11 instance created by Visual Studio 
     // optionsBuilder.UseSqlServer(@"Server=(localdb)\v11.0;Database=EFGetStarted.ConsoleApp;Trusted_Connection=True;"); 

     // Visual Studio 2012 | Use the SQL Express instance created by Visual Studio 
     // optionsBuilder.UseSqlServer(@"Server=.\SQLEXPRESS;Database=EFGetStarted.ConsoleApp;Trusted_Connection=True;"); 
    } 
12

मैं अपने प्रोजेक्ट संदर्भ और मॉडल पैदा करने के साथ एक ही समस्या थी पर ध्यान देना चाहते हैं के रूप में देखने की जरूरत है। यहां कुछ चीजें हैं जो मैंने की थीं।

अपडेट के लिए 1.0 RC1 नीचे

Project.json

"dependencies": { 
    "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final", 
    "EntityFramework.Commands": "7.0.0-rc1-final", 
    "EntityFramework.MicrosoftSqlServer.Design": "7.0.0-rc1-final" 
    }, 

    "commands": { 
    "ef": "EntityFramework.Commands" 
    }, 

    "frameworks": { 
    "dnx451": { }, 
    "dnxcore50": { } 
    } 

DNX कमान

dnx ef dbcontext scaffold "connectionString" EntityFramework.MicrosoftSqlServer 

मूल पोस्ट नीचे

सुनिश्चित करें कि इन

"dependencies": { 
    "EntityFramework.SqlServer": "7.0.0-beta7", 
    "EntityFramework.Commands": "7.0.0-beta7", 
    "EntityFramework.SqlServer.Design": "7.0.0-beta7" 
}, 
"commands": { 
    "ef": "EntityFramework.Commands" 
} 

अपग्रेड dnvm और DNX runtimes रूप में अच्छी तरह का उपयोग कर dnvm अद्यतन आत्म और dnvm उन्नयन: अपने project.json फाइल करने के लिए जोड़ रहे हैं। मैं इसे cmd में भाग गया।

प्रोजेक्ट स्थान में cmd.exe खोला गया है (यदि आप विंडोज़ में हैं, फ़ोल्डर में जाएं और Shift + फ़ोल्डर में राइट-क्लिक करें और "यहां कमांड विंडो खोलें" पर क्लिक करें)। मेरे मामले में मेरे डेटा एक्सेस लेयर उदाहरण के लिए मेरे पास एक अलग परियोजना थी।

C:\Projects\Stackoverflow Example\src\StackoverflowExample.DAL\ 

मैं तो simplay भाग गया:

DNX एफई dbcontext पाड़ "डेटा स्रोत = .; प्रारंभिक सूचि = डेटाबेस; एकीकृत सुरक्षा = सच" EntityFramework.SqlServer

सुनिश्चित करें कि आपकी परियोजना निर्माण कर सकती है। यदि त्रुटियां हैं, तो आदेश शायद काम नहीं करेंगे।

यह सभी मॉडलों के साथ-साथ संदर्भ (प्रत्येक इकाई के OnModelCreating() सेटअप के साथ उत्पन्न हुआ)। यदि आपको सभी मॉडलों की आवश्यकता नहीं है, तो बस उन लोगों को हटाएं जिन्हें आप उपयोग नहीं कर रहे हैं।

तो तुम जवाब देने के लिए प्रश्न:

  1. यह मॉडल और फ़ोल्डर जहाँ आप में DNX एफई dbcontext पाड़ भाग गया में संदर्भ बनाता है
  2. मैं किसी भी आदेश दिए गए हैं यह अभी तक करने की अनुमति देता देख नहीं कर सकते। । cmd में dnx ef --help चलाएं और स्वयं को ढूंढें। dnx ef

मुझे उम्मीद है कि इससे मदद मिलती है।

+0

अनुवर्ती एक ही कदम को छोड़कर मुझे "डीएनयू" के साथ कमांड लाइन से सभी संकुल अधिष्ठापित करना पड़ा, धन्यवाद! – LeLong37

+0

आपकी डीएएल परत किस प्रकार की एक परियोजना है? अधिकांश प्रोजेक्ट प्रकार प्रोजेक्ट.जेसन – pootzko

+1

@pootzko का समर्थन नहीं करते हैं, मैंने फ्रेमवर्क 4.6 में क्लास लाइब्रेरी (पैकेज) का उपयोग किया था। संदर्भित है कि मेरे बीएल में एक कक्षा पुस्तकालय भी है, और मेरे एएसपी.NET 5 वेब अनुप्रयोग में बीएल का संदर्भ दिया गया है। विभाजन ने मेरे प्रोजेक्ट की जटिलता के कारण मेरे लिए काम किया, लेकिन आप इसे एक वेब एप्लिकेशन प्रोजेक्ट में वास्तव में कर सकते हैं। –

3

एक विकल्प --table (-t) पाड़ आदेश के लिए मौजूद है:

dnx ef dbcontext scaffold connectionstring provider -t dbo.tab1 -t dbo.tab2 
संबंधित मुद्दे