1

Предположим, у меня есть таблица - UserToChannel_tbl, которая имеет следующие поля - Id, UserId and ChannelId. Я получение EntityTypeConfiguration и положить все свойства в том, что, как показано ниже (например) -Добавление некластеризованного индекса для нескольких столбцов в конфигурации asp.net mvc

public class UserToChannelConfiguration : EntityTypeConfiguration<UserToChannel> 
{ 
    public UserToChannelConfiguration(){ 

     HasKey(p => p.Id); 

     Property(p => p.Id) 
     .HasColumnName("Id") 
     .HasDatabaseGeneratedOption((DatabaseGeneratedOption?) DatabaseGeneratedOption.Identity) 
     .IsRequired(); 

     Property(p => p.UserId) 
     .HasColumnName("UserId").IsRequired(); 
     HasRequired(p => p.User).WithMany().HasForeignKey(t => t.UserId); 

     Property(p => p.ChannelId) 
     .HasColumnName("ChannelId").IsRequired(); 
     HasRequired(p => p.Channel).WithMany().HasForeignKey(t => t.ChannelId); 
    } 
} 

Теперь таблицу уже кластерный индекс по Id колонку, но мне также нужен не-кластерный индекс UserId, ChannelId колонка. Есть ли способ достичь этого здесь, а не делать это в классе Migration или где-либо еще. Мне кажется намного проще, если я могу определить все свои свойства в одном месте. Я использую ASP.NET MVC 4 с EF6.

+0

В EF 6.1 Да, вы можете определить индексы через атрибут или Fluent API. См. Http://msdn.microsoft.com/en-us/data/jj591617.aspx#PropertyIndex – SBirthare

ответ

0

EF все еще не могу сделать индексы так миграции SQL, такие как CREATE INDEX NONCLUSTERED [IX_User_u_username] ON [DBO]. [BlockedUsers] ([User_u_username]) не собирается произойти. Средство миграции для кода в первую очередь подходит для общих случаев, а не для крайних случаев.