2016-01-22 10 views
8

मेरे पास एक नई एएसपीनेट 5 डीएनएक्स कक्षा पुस्तकालय है जिसका उपयोग मैं इकाई ढांचे के लिए कर रहा हूं। मुझे ईएफ 6 को लक्षित करने की ज़रूरत है क्योंकि मुझे कुछ फीचर्स ईएफ 7 में नहीं हैं।ईएफ 6 एक डीएनएक्स परियोजना

पहले ईएफ टूल्स (जैसे सक्षम-माइग्रेशन) वहां नहीं थे। मैंने एक पुरानी स्टाइल क्लास लाइब्रेरी जोड़ा और ईएफ 6 स्थापित किया और अब कमांड हैं।

जब मैं मैं इस त्रुटि मिलती है माइग्रेशन सक्षम चलाएँ:

PM> Enable-Migrations

Exception calling "SetData" with "2" argument(s): "Type 'Microsoft.VisualStudio.ProjectSystem.VS.Implementation.Package.Automation.OAProject' in assembly 'Microsoft.VisualStudio.ProjectSystem.VS.Implementation, Version=14.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable." At D:\Projects\Rebus\FMS\Code\Current\FMSSupport\FMSSupport\packages\EntityFramework.6.1.3\tools\EntityFramework.psm1:720 char:5 + $domain.SetData('startUpProject', $startUpProject) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : SerializationException System.NullReferenceException: Object reference not set to an instance of an object. at System.Data.Entity.Migrations.Extensions.ProjectExtensions.GetProjectTypes(Project project, Int32 shellVersion) at System.Data.Entity.Migrations.Extensions.ProjectExtensions.IsWebProject(Project project) at System.Data.Entity.Migrations.MigrationsDomainCommand.GetFacade(String configurationTypeName, Boolean useContextWorkingDirectory) at System.Data.Entity.Migrations.EnableMigrationsCommand.FindContextToEnable(String contextTypeName) at System.Data.Entity.Migrations.EnableMigrationsCommand.<>c__DisplayClass2.<.ctor>b__0() at System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command) Object reference not set to an instance of an object.

मैं इस तरह के एक स्टार्टअप परियोजना या contextTypeName निर्दिष्ट करने के रूप में सक्षम-माइग्रेशन के लिए विभिन्न विकल्पों की कोशिश की है।

कोई विचार?

+0

मुझे यह एक सामान्य एएसपी.नेट परियोजना के साथ मिला ... – leppie

+1

हेहे, 'स्टार्ट अप' ने मेरी आंख को पकड़ा। मैंने स्टार्टअप प्रोजेक्ट के रूप में वेब प्रोजेक्ट सेट किया, और फिर यह काम किया: डी – leppie

+0

क्या आपको इसका समाधान मिला? मैं ComplexType समर्थन चाहता था जो EFCore वर्तमान में समर्थन नहीं करता है। एटीएम मैं ईएफसीओआर का उपयोग करने के लिए पूर्णतया को मैन्युअल रूप से खोलने की सोच रहा हूं :( – Ilan

उत्तर

0

ऐसा इसलिए है क्योंकि एएसपी.नेट कोर ने एक नया प्रोजेक्ट प्रकार/कॉन्फ़िगरेशन सिस्टम पेश किया है (package.config vs project.json देखें) और पुराने ईएफ टूल्स को नहीं पता कि नए सिस्टम (project.json) के साथ कैसे काम करना है। यदि आप ईएफ 6 पर वापस जाना चाहते हैं तो यह एक नई परियोजना बनाने और अपने कोड को पोर्ट करने में शायद सबसे आसान होगा।

दिलचस्प बात यह है (अच्छी तरह से, निराश के साथ वास्तव में) वे project.json पर उलटे पांव लौटने रहे देखें: http://xoofx.com/blog/2016/05/11/goodbye-project-json/

3

के बाद इस recommendation, EF6 डेटा परियोजनाओं मौजूदा .नेट फ्रेमवर्क वर्ग पुस्तकालय csproj प्रकार उपयोग करना चाहिए।

सिफारिशों का पालन करने के बाद भी, मुझे अभी भी एक ही त्रुटि मिल रही थी। अपने एएसपी.नेट कोर प्रोजेक्ट को उतारना और उसके बाद उपयुक्त csproj पर Enable-Migrations कमांड का आविष्कार करना आदेश को निष्पादित करने की अनुमति देना चाहिए। आप .NET कोर प्रोजेक्ट पर राइट-क्लिक करके और 'अनलोड प्रोजेक्ट' विकल्प चुनकर एक प्रोजेक्ट को अनलोड कर सकते हैं। यह भी ध्यान दिया जाना चाहिए कि पैकेज प्रबंधक कंसोल विंडो में 'डिफ़ॉल्ट प्रोजेक्ट:' ड्रॉप-डाउन चयन है। आपको अपने डीबीकॉन्टेक्स्ट के साथ प्रोजेक्ट चुनना चाहिए।

0

मुझे एक ही समस्या थी। बस एएसपी.NET कोर से मेरी .NET Framework Lib पर प्रारंभ प्रोजेक्ट को सेट करना मेरे लिए चाल है =) अब मैं सामान्य रूप से "एड-माइग्रेशन" कमांड के रूप में ईएफ 6 माइग्रेशन कर सकता हूं ...

पीएस मेरे eng के लिए खेद है।

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