Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 23619|Yanıt: 0

[Kaynak] EF kodu birinci öznitelik dizisi tipi indeks özellikleri ekler

[Bağlantıyı kopyala]
Yayınlandı 23.11.2017 18:47:15 | | | |
Bir indeks oluşturmak ve sorguyu hızlandırmak istiyorsanız, özniteliğe [Index] özniteliğini ekleyin ve kodu otomatik olarak aşağıdaki gibi oluşturun:

Veritabanını güncelliyoruz ve hata şu şekildedir:



System.Data.SqlClient.SqlException (0x80131904): tablo 'dbo. 'Hesap'daki 'Telefon' sütunu bir indekste anahtar sütun olarak kullanılamaz.
   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)
   In 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)
   In System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource'1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   In System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher içinde. <NonQuery>b__0(DbCommand t, DbCommandInterceptionContext'1 c)
   In System.Data.Entity.Infrastructure.Interception.InternalDispatcher'1.Dispatch[TTarget,TInterceptionContext,TResult](TTarget target, Func'3 operation, TInterceptionContext interceptionContext, Action'3 yürütülüyor, Action'3 yürütülüyor)
   System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.NonQuery(DbCommand komutu, DbCommandInterceptionContext interceptionContext) içinde
   System.Data.Entity.Internal.InterceptableDbCommand.ExecuteNonQuery() içinde
   System.Data.Entity.Migrations.DbMigrator.ExecuteSql(MigrationStatement migrationStatement, DbConnection connection, DbTransaction transaction, DbInterceptionContext içinde interceptionContext)
   System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.ExecuteSql(MigrationStatement migrationStatement, DbConnection connection, DbTransaction transaction , DbInterceptionContext interceptionContext)
   System.Data.Entity.Migrations.DbMigrator.ExecuteStatementsInternal(IEnumerable'1 migrationStatements, DbConnection connection, DbTransaction transaction) içinde, DbInterceptionContext interceptionContext)
   System.Data.Entity.Migrations.DbMigrator.ExecuteStatementsWithinTransaction(IEnumerable'1 migrationStatements, DbTransaction transaction, DbInterceptionContext içinde interceptionContext)
   System.Data.Entity.Migrations.DbMigrator.ExecuteStatementsWithinNewTransaction(IEnumerable'1 migrationStatements, DbConnection connection, DbInterceptionContext içinde interceptionContext)
   System.Data.Entity.Migrations.DbMigrator.ExecuteStatementsInternal içinde (IEnumerable'1 migrationStatements, DbConnection connection, DbInterceptionContext interceptionContext)
   at System.Data.Entity.Migrations.DbMigrator.ExecuteStatementsInternal(IEnumerable'1 migrationStatements, DbConnection connection)
   at System.Data.Entity.Migrations.DbMigrator.<>c__DisplayClass32. <ExecuteStatements>b__30()
   System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.<>c__DisplayClass1 içinde. <Execute>b__0()
   at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func'1 operation)
   In System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute(Action operation)
   System.Data.Entity.Migrations.DbMigrator.ExecuteStatements(IEnumerable'1 migrationStatements, DbTransaction existingTransaction) içinde
   System.Data.Entity.Migrations.DbMigrator.ExecuteStatements(IEnumerable'1 migrationStatements) içinde
   at 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 içinde Boolean otomatik olarak düşürülüyor)
   at System.Data.Entity.Migrations.DbMigrator.ApplyMigration(DbMigration migration, DbMigration lastMigration)
   at 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)
   System.Data.Entity.Migrations.DbMigrator.<>c__DisplayClasse içinde. <Update>b__d()
   at System.Data.Entity.Migrations.DbMigrator.EnsureDatabaseExists(Action mustSucceedToKeepDatabase)
   at System.Data.Entity.Migrations.Infrastructure.MigratorBase.EnsureDatabaseExists(Action mustSucceedToKeepDatabase)
   at System.Data.Entity.Migrations.DbMigrator.Update(String targetMigration)
   System.Data.Entity.Migrations.Infrastructure.MigratorBase.Update(String targetMigration) içinde
   at System.Data.Entity.Migrations.Design.ToolingFacade.UpdateRunner.RunCore()
   System.Data.Entity.Migrations.Design.ToolingFacade.BaseRunner.Run() içinde
ClientConnectionId:2b5f614b-caab-4be6-bc1b-a813b7356739
Hata Numarası:1919,Durum:1,Sınıf:16
Masa 'dbo. 'Hesap'daki 'Telefon' sütunu bir indekste anahtar sütun olarak kullanılamaz.


Hatanın nedeni, ef'in tüm dizi özelliklerinin varsayılan olarak NVARCHAR(Max) türünde olmasıdır,

Çözüm şöyledir:

Ipin uzunluğunu çalıştırın





Fotoğrafta da görüldüğü gibi, yaratım başarılı!





Önceki:NHibernate 3.3'te 4000 karakterden uzun dizileri nasıl depolarsınız
Önümüzdeki:c# karıştırma dizileri
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com