Si quieres crear un índice y acelerar la consulta, añade el atributo [Index] al atributo y genera automáticamente el código de la siguiente manera:
Actualizamos la base de datos y el error es el siguiente:
System.Data.SqlClient.SqlException (0x80131904): tabla 'dbo. La columna 'Teléfono' en 'Cuenta' no puede usarse como columna clave en un índice. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action'1 wrapCloseInAction) en System.Data.SqlClient.SqlInternalConnection.OnError(Excepción SqlException, Boolean breakConnection, Acción'1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, boolean callerHasConnectionLock, Boolean asyncClose) En System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, async booleano, timeout Int32, asyncWrite booleano) En System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource'1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) En System.Data.SqlClient.SqlCommand.ExecuteNonQuery() En System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher. <NonQuery>b__0(DbCommand t, DbCommandInterceptionContext'1 c) En System.Data.Entity.Infrastructure.Interception.InternalDispatcher'1.Dispatch[TTarget,TInterceptionContext,TResult](TTarget objetivo, operación Func'3, TintterceptionContext interceptionContext, Acción'3 ejecutándose, Acción'3 ejecutada) En System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.NonQuery(comando DbCommand, DbCommandInterceptionContext interceptionContext) En System.Data.Entity.Internal.InterceptableDbCommand.ExecuteNonQuery() En System.Data.Entity.Migrations.DbMigrator.ExecuteSQL (MigrationInstruction migrationStatement, conexión DbConnection, transacción DbTransaction, DbInterceptionContext interceptionContexto) En System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.ExecuteSql(MigrationStatement migrationStatement, conexión DbConnection, transacción DbTransaction , DbInterceptionContexto interceptionContexto) En System.Data.Entity.Migrations.DbMigrator.ExecuteStatementsInternal(IEnumerable'1 migrationStatements, conexión DbConnection, transacción DbTransaction, DbInterceptionContexto interceptionContexto) En System.Data.Entity.Migrations.DbMigrator.ExecuteStatementWithinTransaction(IEnumerable'1 migrationStatements, transacción DbTransaction, DbInterceptionContext interceptionContexto) En System.Data.Entity.Migrations.DbMigrator.ExecuteStatementWithinNewTransaction(IEnumerable'1 migrationStatements, conexión DbConnection, DbInterceptionContext interceptionContexto) En System.Data.Entity.Migrations.DbMigrator.ExecuteStatementsInternal(IEnumerable'1 migrationStatements, DbConnection connection, DbInterceptionContext interceptionContext) en System.Data.Entity.Migrations.DbMigrator.ExecuteStatementsInternal(IEnumerable'1 migrationStatements, conexión DbConnection) en System.Data.Entity.Migrations.DbMigrator.<>c__DisplayClass32. <ExecuteStatements>b__30() En System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.<>c__DisplayClass1. <Execute>b__0() en System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func'1 operation) En System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute(Action operation) En System.Data.Entity.Migrations.DbMigrator.ExecuteStatements(IEnumerable'1 migrationStatements, DbTransactionExistingTransaction) En System.Data.Entity.Migrations.DbMigrator.ExecuteStatements(IEnumerable'1 migrationStatements) en System.Data.Entidad.Migraciones.Infraestructura.MigratorBase.EjecutarSentencias(IEnumerable'1 migrationStatements) En System.Data.Entity.Migrations.DbMigrator.ExecuteOperations(String migrationId, VersionedModel targetModel, IEnumerable'1 operations, IEnumerable'1 systemOperations, Boolean degradación, auto booleano) en System.Data.Entity.Migrations.DbMigrator.ApplyMigration(DbMigration migration, DbMigration lastMigration) en System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.ApplyMigration(DbMigration migration, DbMigration lastMigration) en System.Data.Entity.Migrations.DbMigrator.Upgrade(IEnumerable'1 pendingMigrations, String targetMigrationId, String lastMigrationId) en System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.Upgrade(IEnumerable'1 pendingMigrations, String targetMigrationId, String lastMigrationId) en System.Data.Entity.Migrations.DbMigrator.UpdateInternal(String targetMigration) En System.Data.Entity.Migrations.DbMigrator.<>c__DisplayClasse. <Update>b__d() en System.Data.Entity.Migrations.DbMigrator.EnsureDatabaseExists(Action mustSucceedToKeepDatabase) en System.Data.Entity.Migrations.Infrastructure.MigratorBase.EnsureDatabaseExists(Acción debeSucederDeMantenerDeDatabase) en System.Data.Entity.Migrations.DbMigrator.Update(String targetMigration) En System.Data.Entity.Migrations.Infrastructure.MigratorBase.Update(String targetMigration) en System.Data.Entity.Migrations.Design.ToolingFacade.UpdateRunner.RunCore() En System.Data.Entity.Migrations.Design.ToolingFacade.BaseRunner.Run()
ClientConnectionId:2b5f614b-caab-4be6-bc1b-a813b7356739 Número de error: 1919, Estado: 1, Clase: 16 Dbo de mesa. La columna 'Teléfono' en 'Cuenta' no puede usarse como columna clave en un índice.
La razón del error es que todas las propiedades de la cadena ef son de tipo NVARCHAR(Max) por defecto,
La solución es la siguiente:
Ejecuta la longitud de la cuerda
Como se muestra en la imagen, ¡la creación es un éxito!
|