实体框架4.3代码中的错误 - 索引已经存在

时间:2012-02-23 00:18:25

标签: entity-framework entity-framework-4 entity-framework-4.3

在以前的版本中,一切都运行良好但现在在4.3中我收到此错误:

  

发生了'System.Data.SqlClient.SqlException'类型的异常   EntityFramework.DLL但未在用户代码中处理

     

附加信息:操作失败,因为索引或   名为“IX_Id”的统计信息已存在于“用户”表中。


User表有一个Id属性并且是主键但是我没有在其他地方使用代码或属性来创建额外的索引?

用户模型:

public class User
{
    public int Id { get; set; }

    public virtual Settings Settings { get; set; } /* 1-1 */

    public virtual Profile Profile { get; set; } /* 1-1 */
    public virtual Account Account { get; set; } /* 1-1 */


}

我的OnModelCreating(DbModelBuilder模型构建器)失败了

          modelBuilder.Entity<User>().HasRequired(u => u.Settings).WithRequiredDependent();
        modelBuilder.Entity<User>().HasRequired(u => u.Profile).WithRequiredDependent();
        modelBuilder.Entity<User>().HasRequired(u => u.Account).WithRequiredDependent();

更新:只需使用WithRequiredPrincipal而不是WithRequiredDependent来修复它。不确定为什么这在4.3

中有所不同

1 个答案:

答案 0 :(得分:1)

这是EF 4.3中的一个错误。它将在EF5 RTM中修复。有关解决方法的详细信息,请参阅此问题:Unhandled Exception after Upgrading to Entity Framework 4.3.1