在以前的版本中一切正常,但是现在在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)中失败了
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中有所不同
最佳答案
这是EF 4.3中的错误。它将在EF5 RTM中修复。有关更多信息(包括解决方法),请参见以下问题:Unhandled Exception after Upgrading to Entity Framework 4.3.1
关于entity-framework - Entity Framework 4.3代码中的错误优先-索引已存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9405330/