我有这个配置
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时,我得到以下异常
Excepciónalllamar 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ámarcadocomo serializable。“恩D:\ Dev \ Insuranse Advanced 服务\ IAS \包\ EntityFramework.6.0.0 \ TOOLS \ EntityFramework.psm1: 611Carácter:20 + $ domain.SetData&lt;&lt;&lt;&lt; ('startUpProject',$ startUpProject) + CategoryInfo:NotSpecified:(:) [],MethodInvocationException + FullyQualifiedErrorId:DotNetMethodException System.NullReferenceException:Referencia a objeto no establecida como instancia de un objeto。恩 System.Data.Entity.Migrations.Extensions.ProjectExtensions.GetProjectTypes(项目 project,Int32 shellVersion)en System.Data.Entity.Migrations.Extensions.ProjectExtensions.IsWebProject(项目 项目)en System.Data.Entity.Migrations.MigrationsDomainCommand.GetFacade(字符串 configurationTypeName,Boolean useContextWorkingDirectory)zh System.Data.Entity.Migrations.UpdateDatabaseCommand&LT;&GT; C_ DisplayClass2&LT; .ctor&GT,B _0() 恩 System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(动作 命令)参考没有establecida como instancia de un objeto。
答案 0 :(得分:6)
问题解决了,我打开了文件 .. \ packages \ EntityFramework.6.0.0 \ tools \ EntityFramework.psm和第611行说明:
$domain.SetData('startUpProject', $startUpProject)
我查看了我的解决方案之后,我发现启动项目已更改为数据库项目,更正了问题并且问题已经消失。
答案 1 :(得分:0)
这是一个非常晚的解决方案,但我认为它可能会帮助其他人。我遇到了这个问题,我将项目更改为StartUp项目(右键单击项目并设置为启动项目&#39;)并排除问题。