2016-01-22 3 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

Хе-хе, «запустил», попался на глаза. Я установил веб-проект как проект запуска, а затем он сработал: D – leppie

+0

Вы нашли решение? Мне нужна поддержка ComplexType, которую EFCore в настоящее время не поддерживает. ATM Я смотрю на необходимость вручную раскручивать типы complextypes, чтобы использовать EFCore :( – Ilan

ответ

0

Это потому, что ASP.NET Core представил новую систему/тип системы проекта (см. package.config vs project.json), а старые инструменты EF не знают, как работать с новой системой (project.json). Возможно, было бы проще всего создать новый проект и поместить в него свой код, если вы хотите вернуться к EF6.

Интересно (ну, удручающе на самом деле) они возвратов на project.json см: http://xoofx.com/blog/2016/05/11/goodbye-project-json/

3

После этого recommendation проекты данных Ef6 должны использовать существующий тип .NET Framework библиотека классов csproj.

Даже после выполнения рекомендаций, я все еще получал ту же ошибку. Выгрузка проекта ASP.NET Core, а затем вызов команды Enable-Migrations на соответствующий csproj должен позволить выполнить команду. Вы можете выгрузить проект, щелкнув правой кнопкой мыши на проекте .NET Core и выбрав вариант «Unload Project». Следует также отметить, что в окне консоли диспетчера пакетов есть раскрывающийся список «Проект по умолчанию». Вы должны выбрать проект с помощью DbContext.

0

У меня была та же проблема. Просто установка начального проекта из ASP.NET Core для моей .NET Framework Lib делает трюк для меня =) Теперь я могу выполнять миграции EF6, как обычно, командой «Добавить-миграцию» ...

P.S. Извините за мой eng.

Смежные вопросы