Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 23619|Απάντηση: 0

[Πηγή] Ο πρώτος τύπος συμβολοσειράς χαρακτηριστικού κωδικού EF προσθέτει ιδιότητες ευρετηρίου

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 23/11/2017 6:47:15 μ.μ. | | | |
Εάν θέλετε να δημιουργήσετε ένα ευρετήριο και να επιταχύνετε το ερώτημα, προσθέστε το χαρακτηριστικό [Index] στο χαρακτηριστικό και δημιουργήστε αυτόματα τον κώδικα ως εξής:

Ενημερώνουμε τη βάση δεδομένων και το σφάλμα είναι το εξής:



System.Data.SqlClient.SqlException (0x80131904): πίνακας 'dbo. Η στήλη "Τηλέφωνο" στο "Λογαριασμός" δεν μπορεί να χρησιμοποιηθεί ως στήλη κλειδιού σε ένα ευρετήριο.
   στο 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)
   στο 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()
   Στο System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher. <NonQuery>b__0(DbCommand t, DbCommandInterceptionContext'1 γ)
   In System.Data.Entity.Infrastructure.Interception.InternalDispatcher'1.Dispatch[TTarget,TInterceptionContext,TResult](TTarget target, Func'3 operation, TInterceptionContext interceptionContext, Ενέργεια'3 εκτελείται, Ενέργεια'3 εκτελείται)
   Στο System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.NonQuery(εντολή DbCommand, DbCommandInterceptionContext interceptionContext)
   Στο System.Data.Entity.Internal.InterceptableDbCommand.ExecuteNonQuery()
   Στο 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 , DbInterceptionContext interceptionContext)
   Στο System.Data.Entity.Migrations.DbMigrator.ExecuteStatementsInternal(IEnumerable'1 migrationStatements, DbConnection connection, DbTransaction transaction, DbInterceptionContext interceptionContext)
   Στο System.Data.Entity.Migrations.DbMigrator.ExecuteStatementsWithinTransaction(IEnumerable'1 migrationStatements, DbTransaction transaction, DbInterceptionContext interceptionContext)
   Στο 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)
   στο System.Data.Entity.Migrations.DbMigrator.ExecuteStatementsInternal(IEnumerable'1 migrationStatements, σύνδεση DbConnection)
   στο System.Data.Entity.Migrations.DbMigrator.<>c__DisplayClass32. <ExecuteStatements>b__30()
   Στο System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.<>c__DisplayClass1. <Execute>b__0()
   at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](λειτουργία Func'1)
   Στο System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute(Λειτουργία ενέργειας)
   Στο System.Data.Entity.Migrations.DbMigrator.ExecuteStatements(IEnumerable'1 migrationStatements, DbTransaction existingTransaction)
   Στο System.Data.Entity.Migrations.DbMigrator.ExecuteStatements(IEnumerable'1 migrationStatements)
   στο System.Data.Entity.Migrations.Infrastructure.MigratorBase.ExecuteStatements(IEnumerable'1 migrationStatements)
   Στο System.Data.Entity.Migrations.DbMigrator.ExecuteOperations(String migrationId, VersionedModel targetModel, IEnumerable'1 operations, IEnumerable'1 systemOperations, Boolean υποβάθμιση, Boolean auto)
   στο System.Data.Entity.Migrations.DbMigrator.ApplyMigration(DbMigration migration, DbMigration lastMigration)
   στο System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.ApplyMigration(DbMigration migration, DbMigration lastMigration)
   στο System.Data.Entity.Migrations.DbMigrator.Upgrade(IEnumerable'1 pendingMigrations, String targetMigrationId, String lastMigrationId)
   στο System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.Upgrade(IEnumerable'1 pendingMigrations, String targetMigrationId, String lastMigrationId)
   στο System.Data.Entity.Migrations.DbMigrator.UpdateInternal(Συμβολοσειρά targetMigration)
   Στο System.Data.Entity.Migrations.DbMigrator.<>c__DisplayClasse. <Update>b__d()
   στο System.Data.Entity.Migrations.DbMigrator.EnsureDatabaseExists(Action mustSucceedToKeepDatabase)
   στο System.Data.Entity.Migrations.Infrastructure.MigratorBase.EnsureDatabaseExists(Action mustSucceedToKeepDatabase)
   στο System.Data.Entity.Migrations.DbMigrator.Update(Συμβολοσειρά targetMigration)
   Στο System.Data.Entity.Migrations.Infrastructure.MigratorBase.Update(String targetMigration)
   στο System.Data.Entity.Migrations.Design.ToolingFacade.UpdateRunner.RunCore()
   Στο System.Data.Entity.Migrations.Design.ToolingFacade.BaseRunner.Run()
ClientConnectionId:2b5f614b-caab-4be6-bc1b-a813b7356739
Αριθμός σφάλματος: 1919, κατάσταση: 1, κλάση: 16
Πίνακας 'dbo. Η στήλη "Τηλέφωνο" στο "Λογαριασμός" δεν μπορεί να χρησιμοποιηθεί ως στήλη κλειδιού σε ένα ευρετήριο.


Ο λόγος για το σφάλμα είναι επειδή όλες οι ιδιότητες συμβολοσειράς του ef είναι τύπου NVARCHAR(Max) από προεπιλογή,

Η λύση είναι η εξής:

Εκτελέστε το μήκος της συμβολοσειράς





Όπως φαίνεται στην εικόνα, η δημιουργία είναι επιτυχημένη!





Προηγούμενος:Πώς να αποθηκεύσετε συμβολοσειρές μεγαλύτερες από 4000 χαρακτήρες στο NHibernate 3.3
Επόμενος:Πίνακες κρυπτογράφησης C#
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com