Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 23619|Jawab: 0

[Sumber] Jenis string atribut pertama kode EF menambahkan properti indeks

[Salin tautan]
Diposting pada 23/11/2017 18.47.15 | | | |
Jika Anda ingin membuat indeks dan mempercepat kueri, tambahkan atribut [Indeks] ke atribut dan hasilkan kode secara otomatis sebagai berikut:

Kami memperbarui database database dan kesalahannya adalah sebagai berikut:



System.Data.SqlClient.SqlException (0x80131904): tabel 'dbo. Kolom 'Telepon' di 'Akun' tidak dapat digunakan sebagai kolom kunci dalam indeks.
   di System.Data.SqlClient.SqlConnection.OnError(Pengecualian SqlException, Boolean breakConnection, Action'1 wrapCloseInAction)
   di System.Data.SqlClient.SqlInternalConnection.OnError(Pengecualian SqlException, Boolean breakConnection, Action'1 wrapCloseInAction)
   di System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   Di System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   di System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, batas waktu Int32, Boolean asyncWrite)
   Dalam System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource'1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   Di System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   Di System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher. <NonQuery>b__0(DbCommand t, DbCommandInterceptionContext'1 c)
   Di System.Data.Entity.Infrastructure.Interception.InternalDispatcher'1.Dispatch[TTarget,TInterceptionContext,TResult](Target TTarget, operasi Func'3, TInterceptionContext interceptionContext, Action'3 mengeksekusi, Action'3 dieksekusi)
   Di System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.NonQuery(perintah DbCommand, DbCommandInterceptionContext interceptionContext)
   Di System.Data.Entity.Internal.InterceptableDbCommand.ExecuteNonQuery()
   Di System.Data.Entity.Migrations.DbMigrator.ExecuteSql(MigrationStatement migrationStatement, koneksi DbConnection, transaksi DbTransaction, DbInterceptionContext intersepsiKonteks)
   Di System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.ExecuteSql(MigrationStatement migrationStatement, koneksi DbConnection, transaksi DbTransaction , DbInterceptionContext interceptionContext)
   Dalam System.Data.Entity.Migrations.DbMigrator.ExecuteStatementsInternal(IEnumerable'1 migrationStatements, koneksi DbConnection, transaksi DbTransaction, DbInterceptionContext interceptionContext)
   Di System.Data.Entity.Migrations.DbMigrator.ExecuteStatementsWithinTransaction(IEnumerable'1 migrationStatements, transaksi DbTransaction, DbInterceptionContext intersepsiKonteks)
   Di System.Data.Entity.Migrations.DbMigrator.ExecuteStatementsWithinNewTransaction(IEnumerable'1 migrationStatements, koneksi DbConnection, DbInterceptionContext intersepsiKonteks)
   Di System.Data.Entity.Migrations.DbMigrator.ExecuteStatementsInternal(IEnumerable'1 migrationStatements, koneksi DbConnection, DbInterceptionContext interceptionContext)
   di System.Data.Entity.Migrations.DbMigrator.ExecuteStatementsInternal(IEnumerable'1 migrationStatements, koneksi DbConnection)
   di System.Data.Entity.Migrations.DbMigrator.<>c__DisplayClass32. <ExecuteStatements>b__30()
   Di System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.<>c__DisplayClass1. <Execute>b__0()
   di System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Operasi Func'1)
   Di System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute(Operasi tindakan)
   Di System.Data.Entity.Migrations.DbMigrator.ExecuteStatements(IEnumerable'1 migrationStatements, DbTransaction existingTransaction)
   Di System.Data.Entity.Migrations.DbMigrator.ExecuteStatements(IEnumerable'1 migrationStatements)
   di System.Data.Entity.Migrations.Infrastructure.MigratorBase.ExecuteStatements(IEnumerable'1 migrationStatements)
   Di System.Data.Entity.Migrations.DbMigrator.ExecuteOperations(String migrationId, VersionedModel targetModel, IEnumerable'1 operations, IEnumerable'1 systemOperations, Boolean menurunkan tingkat, Boolean otomatis)
   di System.Data.Entity.Migrations.DbMigrator.ApplyMigration(DbMigration migration, DbMigration lastMigration)
   di System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.ApplyMigration(DbMigration migration, DbMigration lastMigration)
   di System.Data.Entity.Migrations.DbMigrator.Upgrade(IEnumerable'1 pendingMigrations, String targetMigrationId, String lastMigrationId)
   di System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.Upgrade(IEnumerable'1 pendingMigrations, String targetMigrationId, String lastMigrationId)
   di System.Data.Entity.Migrations.DbMigrator.UpdateInternal(String targetMigration)
   Di System.Data.Entity.Migrations.DbMigrator.<>c__DisplayClasse. <Update>b__d()
   di System.Data.Entity.Migrations.DbMigrator.EnsureDatabaseExists(Tindakan harusSucceedToKeepDatabase)
   di System.Data.Entity.Migrations.Infrastructure.MigratorBase.EnsureDatabaseExists(Action mustSucceedToKeepDatabase)
   di System.Data.Entity.Migrations.DbMigrator.Update(String targetMigration)
   Di System.Data.Entity.Migrations.Infrastructure.MigratorBase.Update(String targetMigration)
   di System.Data.Entity.Migrations.Design.ToolingFacade.UpdateRunner.RunCore()
   Di System.Data.Entity.Migrations.Design.ToolingFacade.BaseRunner.Run()
ClientConnectionId:2b5f614b-caab-4be6-bc1b-a813b7356739
Nomor Kesalahan: 1919, Negara: 1, Kelas: 16
Tabel 'dbo. Kolom 'Telepon' di 'Akun' tidak dapat digunakan sebagai kolom kunci dalam indeks.


Alasan kesalahan adalah karena semua properti string ef berjenis NVARCHAR(Max) secara default,

Solusinya adalah sebagai berikut:

Eksekusi panjang string





Seperti yang ditunjukkan pada gambar, penciptaannya berhasil!





Mantan:Cara menyimpan string yang lebih panjang dari 4000 karakter di NHibernate 3.3
Depan:Array Scramble C#
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com