Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 23619|Vastaus: 0

[Lähde] EF-koodin ensimmäinen attribuuttimerkkijonotyyppi lisää indeksiominaisuuksia

[Kopioi linkki]
Julkaistu 23.11.2017 18.47.15 | | | |
Jos haluat luoda indeksin ja nopeuttaa kyselyä, lisää [Index]-attribuutti attribuuttiin ja generoi koodi automaattisesti seuraavasti:

Päivitämme tietokannan ja virhe on seuraava:



System.Data.SqlClient.SqlException (0x80131904): taulukko 'dbo. Saraketta 'Puhelin' 'Tili'-osiossa ei voi käyttää avainsarakkeena indeksissä.
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action'1 wrapCloseInAction)
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action'1 wrapCloseInAction)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   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, Boolean async, Int32 timeout, Boolean asyncWrite)
   System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource'1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean&usedCache, Boolean asyncWrite, Boolean inRetry)
   System.Data.SqlClient.SqlCommand.ExecuteNonQuery() -tiedostossa
   System.Data.Entity.Infrastructure.Interception.DbCommandDispatcherissa. <NonQuery>b__0(DbCommand t, DbCommandInterceptionContext'1 c)
   System.Data.Entity.Infrastructure.Interception.InternalDispatcher'1.Dispatch[TTarget,TInterceptionContext,TResult](TTarget target, Func'3-operaatio, TInterceptionContext interceptionContext, Action'3 suoritetaan, Action'3 suoritetaan)
   System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.NonQuery(DbCommand-komento, DbCommandInterceptionContext interceptionContext)
   System.Data.Entity.Internal.InterceptableDbCommand.ExecuteNonQuery() -tiedostossa
   In System.Data.Entity.Migrations.DbMigrator.ExecuteSql(MigrationStatement migrationStatement, DbConnection connection, DbTransaction transaction, DbInterceptionContext interceptionContext)
   System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.ExecuteSql (MigrationStatement migrationStatement, DbConnection, DbTransaction transaction , DbInterceptionContext interceptionContext)
   System.Data.Entity.Migrations.DbMigrator.ExecuteStatementsInternal(IEnumerable'1 migrationStatements, DbConnection-yhteys, DbTransaction-transaktio, DbInterceptionContext interceptionContext)
   System.Data.Entity.Migrations.DbMigrator.ExecuteStatementsWithinTransaction(IEnumerable'1) migrationStatements, DbTransaction transaction, DbInterceptionContext interceptionContext)
   In System.Data.Entity.Migrations.DbMigrator.ExecuteStatementsWithinNewTransaction(IEnumerable'1 migrationStatements, DbConnection connection, DbInterceptionContext interceptionContext)
   System.Data.Entity.Migrations.DbMigrator.ExecuteStatementsInternal(IEnumerable'1 migrationStatements, DbConnection connection, DbInterceptionContext interceptionContext)
   osoitteessa System.Data.Entity.Migrations.DbMigrator.ExecuteStatementsInternal(IEnumerable'1 migrationStatements, DbConnection connection)
   osoitteessa System.Data.Entity.Migrations.DbMigrator.<>c__DisplayClass32. <ExecuteStatements>b__30()
   In System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.<>c__DisplayClass1. <Execute>b__0()
   at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func'1 operation)
   System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute(Action operation)
   System.Data.Entity.Migrations.DbMigrator.ExecuteStatements (IEnumerable'1 migrationStatements, DbTransaction existingTransaction)
   System.Data.Entity.Migrations.DbMigrator.ExecuteStatements(IEnumerable'1 migrationStatements)
   osoitteessa System.Data.Entity.Migrations.Infrastructure.MigratorBase.ExecuteStatements(IEnumerable'1 migrationStatements)
   In System.Data.Entity.Migrations.DbMigrator.ExecuteOperations(String migrationId, VersionedModel targetModel, IEnumerable'1 operations, IEnumerable'1 systemOperations, Boolean alennus, Boolean auto)
   osoitteessa System.Data.Entity.Migrations.DbMigrator.ApplyMigration(DbMigration migration, DbMigration lastMigration)
   osoitteessa System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.ApplyMigration(DbMigration migration, DbMigration lastMigration)
   at System.Data.Entity.Migrations.DbMigrator.Upgrade(IEnumerable'1 pendingMigrations, String targetMigrationId, String lastMigrationId)
   at System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.Upgrade(IEnumerable'1 pendingMigrations, String targetMigrationId, String lastMigrationId)
   at System.Data.Entity.Migrations.DbMigrator.UpdateInternal(String targetMigration)
   In System.Data.Entity.Migrations.DbMigrator.<>c__DisplayClasse. <Update>b__d()
   osoitteessa System.Data.Entity.Migrations.DbMigrator.EnsureDatabaseExists(Action mustSucceedToKeepDatabase)
   osoitteessa System.Data.Entity.Migrations.Infrastructure.MigratorBase.EnsureDatabaseExists(Action mustSucceedToKeepDatabase)
   at System.Data.Entity.Migrations.DbMigrator.Update(merkkijono targetMigration)
   System.Data.Entity.Migrations.Infrastructure.MigratorBase.Update(String targetMigration)
   osoitteessa System.Data.Entity.Migrations.Design.ToolingFacade.UpdateRunner.RunCore()
   In System.Data.Entity.Migrations.Design.ToolingFacade.BaseRunner.Run()
ClientConnectionId:2b5f614b-caab-4be6-bc1b-a813b7356739
Virhenumero:1919,Osavaltio:1,Luokka:16
Pöytä 'dbo. Saraketta 'Puhelin' 'Tili'-osiossa ei voi käyttää avainsarakkeena indeksissä.


Virheen syynä on se, että kaikki ef:n merkkijonon ominaisuudet ovat oletuksena tyyppiä NVARCHAR(Max),

Ratkaisu on seuraava:

Suorita merkkijonon pituus





Kuten kuvassa näkyy, luomus onnistuu!





Edellinen:Kuinka tallentaa yli 4000 merkin pidempiä merkkijonoja NHibernate 3.3:een
Seuraava:c# sekoitusjärjestelmät
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com