3

在以前的版本中一切正常,但现在在 4.3 中出现此错误:

EntityFramework.DLL 中出现“System.Data.SqlClient.SqlException”类型的异常,但未在用户代码中处理

附加信息:操作失败,因为表 'Users' 上已存在名称为 '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 中有所不同

4

1 回答 1

1

这是 EF 4.3 中的一个错误。它将在 EF5 RTM 中修复。有关包括解决方法在内的更多信息,请参阅此问题:升级到实体框架 4.3.1 后未处理的异常

于 2012-06-01T02:07:03.353 回答