【发布时间】:2014-02-27 12:49:48
【问题描述】:
运行Update-Database -Verbose时出现以下错误:
使用启动项目“WebApplication”。使用 NuGet 项目 'Web应用程序'。指定“-Verbose”标志以查看 SQL 应用于目标数据库的语句。目标数据库是: “星冰乐”(数据源:(Localdb)\v11.0,提供者: System.Data.SqlClient,来源:配置)。没有待处理的显式 迁移。应用自动迁移: 201402032027563_AutomaticMigration。 ALTER TABLE [dbo].[Clients] ALTER COLUMN [ID] [int] NOT NULL System.Data.SqlClient.SqlException (0x80131904):对象“PK_dbo.Clients”依赖于“ID”列。 对象“FK_dbo.Users_dbo.Clients_Client_ID”取决于列 'ID'。 ALTER TABLE ALTER COLUMN ID 失败,因为一个或多个对象 访问此列。在 System.Data.SqlClient.SqlConnection.OnError(SqlException 异常, Boolean breakConnection, Action
1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) 在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler、SqlDataReader 数据流、 BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean & dataReady) 在 System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(字符串 方法名,布尔异步,Int32 超时,布尔异步写入)在 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at System.Data.Entity.Infrastructure.Interception.InternalDispatcher1.Dispatch[TInterceptionContext,TResult](Func1 operation, TInterceptionContext interceptionContext, Action1 执行,动作1 executed) at System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.NonQuery(DbCommand command, DbCommandInterceptionContext interceptionContext) at System.Data.Entity.Internal.InterceptableDbCommand.ExecuteNonQuery()1 migrationStatements,DbConnection 连接)在 System.Data.Entity.Migrations.DbMigrator.c_DisplayClass32.b_2e() 在 System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.c_DisplayClass1.b_0() 在 System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func
at System.Data.Entity.Migrations.DbMigrator.ExecuteSql(DbTransaction transaction, MigrationStatement migrationStatement) at System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.ExecuteSql(DbTransaction transaction, MigrationStatement migrationStatement) at System.Data.Entity.Migrations.DbMigrator.ExecuteStatementsInternal(IEnumerable1 operation) at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute(Action operation) at System.Data.Entity.Migrations.DbMigrator.ExecuteStatements(IEnumerable1 迁移声明)在 System.Data.Entity.Migrations.Infrastructure.MigratorBase.ExecuteStatements(IEnumerable1 migrationStatements) at System.Data.Entity.Migrations.DbMigrator.ExecuteOperations(String migrationId, XDocument targetModel, IEnumerable1 操作, IEnumerable1 systemOperations, Boolean downgrading, Boolean auto)1 pendingMigrations, 字符串 targetMigrationId, 字符串 lastMigrationId)
at System.Data.Entity.Migrations.DbMigrator.AutoMigrate(String migrationId, XDocument sourceModel, XDocument targetModel, Boolean downgrading) at System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.AutoMigrate(String migrationId, XDocument sourceModel, XDocument targetModel, Boolean downgrading) at System.Data.Entity.Migrations.DbMigrator.Upgrade(IEnumerable
在 System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.Upgrade(IEnumerable`1 pendingMigrations, 字符串 targetMigrationId, 字符串 lastMigrationId)
在 System.Data.Entity.Migrations.DbMigrator.UpdateInternal(字符串 目标迁移)在 System.Data.Entity.Migrations.DbMigrator.c_DisplayClassc.b_b() 在 System.Data.Entity.Migrations.DbMigrator.EnsureDatabaseExists(操作 mustSucceedToKeepDatabase) 在 System.Data.Entity.Migrations.Infrastructure.MigratorBase.EnsureDatabaseExists(操作 mustSucceedToKeepDatabase) 在 System.Data.Entity.Migrations.DbMigrator.Update(字符串 目标迁移)在 System.Data.Entity.Migrations.Infrastructure.MigratorBase.Update(字符串 目标迁移)在 System.Data.Entity.Migrations.Design.ToolingFacade.UpdateRunner.Run() 在 System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate) 在 System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate)
在 System.Data.Entity.Migrations.Design.ToolingFacade.Run(BaseRunner 亚军)在 System.Data.Entity.Migrations.Design.ToolingFacade.Update(字符串 targetMigration,布尔力)在 System.Data.Entity.Migrations.UpdateDatabaseCommand.c_DisplayClass2.<.ctor>b_0() 在 System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(操作 命令)ClientConnectionId:9854ba62-772c-4ba6-b185-ecae993e065f 对象“PK_dbo.Clients”取决于“ID”列。物体 “FK_dbo.Users_dbo.Clients_Client_ID”取决于“ID”列。 ALTER TABLE ALTER COLUMN ID 失败,因为一个或多个对象访问 本栏目。
在此之前我所做的是将我的 Code-First Model 类中的 ID 变量从 Int16 更改为 Int32。
有什么帮助吗?
【问题讨论】:
标签: asp.net-mvc entity-framework entity-framework-migrations