2016-01-22 37 views
8

我有一個新的ASP.net 5 dnx類庫,我用於實體框架。我需要定位EF 6,因爲我需要的一些功能不在EF 7中。EF 6與dnx項目

首先,EF工具(如enable-migration)不在那裏。我添加了一箇舊式的類庫並安裝了EF 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

我用一個普通的ASP.NET項目得到了這個...... – leppie

+1

呵呵,'啓動'引起了我的注意。我將web項目設置爲啓動項目,然後運行:D – leppie

+0

您是否找到解決方案?我希望EFCore目前不支持的ComplexType支持。自動取款機我正在尋找不得不手動展開復雜類型以使用EFCore :( – Ilan

回答

3

在此之後recommendation,EF6數據項目應利用現有的.NET Framework類庫的csproj類型。

即使按照建議,我仍然得到同樣的錯誤。卸載ASP.NET Core項目,然後在相應的csproj上調用Enable-Migrations命令應該允許執行該命令。您可以通過右鍵單擊.NET Core項目並選擇「卸載項目」選項來卸載項目。還應該注意的是,軟件包管理器控制檯窗口有一個「默認項目:」下拉選擇。你應該選擇你的DbContext的項目。

0

我有同樣的問題。只需將ASP.NET Core的啓動項目設置爲我的.NET Framework Lib就可以實現這個功能=)現在,我可以像往常一樣執行EF6遷移「添加遷移」命令...

P.S.對不起,我的工程師。