【问题标题】:Adding non-clustered index for multiple columns in asp.net mvc configuration在 asp.net mvc 配置中为多列添加非聚集索引
【发布时间】:2014-11-10 07:07:53
【问题描述】:

假设我有一个表格 - UserToChannel_tbl,其中包含以下字段 - Id, UserId and ChannelId。我正在派生EntityTypeConfiguration 并将所有属性放入其中,如下所示(示例) -

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 类或其他任何地方这样做。如果我可以在一个地方定义我的所有属性,对我来说似乎要简单得多。我正在使用带有 EF6 的 ASP.NET MVC 4。

【问题讨论】:

标签: asp.net-mvc entity-framework asp.net-mvc-4 entity-framework-migrations


【解决方案1】:

EF 仍然不能做索引,所以迁移 SQL,例如 在 [dbo].[BlockedUsers] ([User_u_username]) 上创建非集群索引 [IX_User_u_username] 不会发生。 代码优先迁移工具适用于一般情况,而不是看起来的边缘情况。

【讨论】:

    猜你喜欢
    • 2016-08-30
    • 2018-02-17
    • 2012-12-30
    • 1970-01-01
    • 2011-04-05
    • 2015-07-08
    • 2013-08-07
    • 1970-01-01
    相关资源
    最近更新 更多