EF 4.1 から 4.3 にアップグレードした後、突然次のエラーが発生し始めました。
内部例外: System.Data.SqlClient.SqlException (0x80131904): 'IX_AccountId' という名前のインデックスまたは統計が既にテーブル 'User' に存在するため、操作は失敗しました。
以下は、このエラーを作成する関連コードです。
public class Account {
public Account() {
Users = new HashSet<User>();
}
[Key]
public int AccountId { get; set; }
public virtual ICollection<User> Users { get; private set; }
}
public class User {
[Key]
public int UserId { get; set; }
public int AccountId { get; set; }
public virtual Account Account { get; set; }
}
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
modelBuilder.Entity<Account>()
.HasMany<User>(a => a.Users)
.WithRequired()
.HasForeignKey(u => u.AccountId);
modelBuilder.Entity<User>()
.HasRequired(u => u.Account)
.WithMany()
.HasForeignKey(u => u.AccountId);
}