【发布时间】: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。
【问题讨论】:
-
在 EF 6.1 中,是的,您可以通过属性或 Fluent API 定义索引。见msdn.microsoft.com/en-us/data/jj591617.aspx#PropertyIndex
标签: asp.net-mvc entity-framework asp.net-mvc-4 entity-framework-migrations