EF 6基于代码的迁移异常:Microsoft.VisualStudio.Data.Tools.Package不可序列化? [英] EF 6 Code based migration exception: Microsoft.VisualStudio.Data.Tools.Package not serializable?

查看:95
本文介绍了EF 6基于代码的迁移异常:Microsoft.VisualStudio.Data.Tools.Package不可序列化?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这个配置

internal sealed class Configuration :DbMigrationsConfiguration<IAS.Models.ApplicationDbContext> {
            public Configuration() {
                AutomaticMigrationsEnabled = false;
                ContextKey = "IAS.Models.ApplicationDbContext";
            }

            protected override void Seed( IAS.Models.ApplicationDbContext context ) {
                var baseDir = AppDomain.CurrentDomain.BaseDirectory;
                context.Database.ExecuteSqlCommand(File.ReadAllText(baseDir + "\\MyInsertScriptsql"));
        }
    }

当运行upate-dataabase我得到以下异常

when running upate-dataabase i get the following exception


Excepciónal llamar aSetDatacon los argumentos2:El tipo
Microsoft.VisualStudio.Data.Tools .Package.Internal.OAProject'del
ensamblado'Microsoft.VisualStudio.Data.Tools.Pa ckage,
Version = 11.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'no
estámarcado como serializable。 En D:\Dev\Insuranse高级
服务\IAS\packages\EntityFramework.6.0.0\tools\EntityFramework.psm1:
611Carácter:20
+ $ domain.SetData<<<< ('startUpProject',$ startUpProject)
+ CategoryInfo:NotSpecified:(:) [],MethodInvocationException
+ FullyQualifiedErrorId:DotNetMethodException System.NullReferenceException:引用一个objeto no establecida como
instancia de un objeto 。 en
System.Data.Entity.Migrations.Extensions.ProjectExtensions.GetProjectTypes(Project
project,Int32 shellVersion)en
System.Data.Entity.Migrations.Extensions.ProjectExtensions.IsWebProject(Project
project)en
System.Data.Entity.Migrations.MigrationsDomainCommand.GetFacade(String
configurationTypeName,Boolean useContextWorkingDirectory)en
System.Data.Entity.Migrations.UpdateDatabaseCommand。<> c_ DisplayClass2。< .ctor> b _0()
en
System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action
command)引用objeto

Excepción al llamar a "SetData" con los argumentos "2": "El tipo 'Microsoft.VisualStudio.Data.Tools.Package.Internal.OAProject' del ensamblado 'Microsoft.VisualStudio.Data.Tools.Pa ckage, Version=11.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' no está marcado como serializable." En D:\Dev\Insuranse Advanced Services\IAS\packages\EntityFramework.6.0.0\tools\EntityFramework.psm1: 611 Carácter: 20 + $domain.SetData <<<< ('startUpProject', $startUpProject) + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : DotNetMethodException System.NullReferenceException: Referencia a objeto no establecida como instancia de un objeto. en System.Data.Entity.Migrations.Extensions.ProjectExtensions.GetProjectTypes(Project project, Int32 shellVersion) en System.Data.Entity.Migrations.Extensions.ProjectExtensions.IsWebProject(Project project) en System.Data.Entity.Migrations.MigrationsDomainCommand.GetFacade(String configurationTypeName, Boolean useContextWorkingDirectory) en System.Data.Entity.Migrations.UpdateDatabaseCommand.<>c_DisplayClass2.<.ctor>b_0() en System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command) Referencia a objeto no establecida como instancia de un objeto.


推荐答案

问题解决了,我打开了文件
..\packages\EntityFramework.6.0.0\tools\EntityFramework.psm和第611行说明:

Problem solved, i opened the file ..\packages\EntityFramework.6.0.0\tools\EntityFramework.psm and the line 611 states:

 $domain.SetData('startUpProject', $startUpProject)

我检查我的解决方案后,我发现启动项目已经更改为数据库项目,更正了这一点,问题已经消失了。

I them after review my solution I found that the startup project was changed to the Database project, corrected this and the problem was gone.

这篇关于EF 6基于代码的迁移异常:Microsoft.VisualStudio.Data.Tools.Package不可序列化?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆