2010-08-25 20 views
8

Çoktan fazla ilişki var olan iki varlıklı bir varlık veri modeli tasarladım. Bu model için veritabanı oluşturmak için SQL kodu otomatik olarak oluşturduğumda, bu çoktan çoğa ilişkiyi izlemek için bir tablo (iki sütun) oluşturdu. Ancak, bu tablonun her iki sütunda da bir PRIMARY KEY NONCLUSTERED vardır.Entity Framework Çoktan Kümelenmiş ve Kümelenmemiş Dizin

Sadece kümelenmemiş dizinler içeren tabloları sevmeyen SQL Azure üzerinde çalışmasını istediğimden beri, kod nesnesini kümelenmiş dizinler oluşturmak için iyi bir yöntem olup olmadığını merak ediyordum? Teşekkürler!

+0

Bir anahtar anahtarı vermeyi denediniz mi? – Nix

+0

Aynı teknedeyim. Bunun eski bir soru olduğunun farkındayım ama cevaplanmış gibi görünmüyor. Azure, EF'nin oluşturduğu Kümelenmemiş anahtarları desteklemiyor. – Allan

cevap

3

Performans optimizasyonları gibi, EF oluşturduğu temel öğelerin dışında ek dizinler oluşturmak için komut dosyaları içeren Model.indexes.sql adlı başka bir dosyam var. bu ideal olmasa da

, bu bir indeks damla eklenir ve dizine olanları içine Olmayan Kümelenmiş dizin dönüştürmek için her EF dernek için oluşturun:.

ALTER tablo [dbo] [MyAssociation] DROP CONSTRAıNT'I [PK_MyAssociation] GO ALTER TABLE [dbo]. [MyAssociation] ADD CONSTRAINT [PK_MyAssociation] PRIMARY KEY CLUSTERED ([Table1_Id], [Table2_Id] ASC); GO

Her "Model Veritabanından Veri Oluştur ..." dan sonra yürütülür. Daha zarif bir çözümü çok isterim.